Zdravím konferenci!
Narazil jsem na zajímavý problém při parseování emailů pomocí API JavaMail.
Viz. kód
Part p; // ... viz. API JavaMail
// ...
Object o = p.getContent();
if (o instanceof InputStream){
InputStream is = (InputStream)o;
byte data[]=new byte[is.available()];
int res=is.read(data);
System.out.println("Nacteno "+res+" xxx velikost pole "+data.length);
}
Výsledek je dosti překvapivý:
Nacteno 64509 xxx velikost pole 65357
Pokud jsem to zkoušel s FileInputStream nebo s ByteArrayInputStream, tak
to fungovalo správně.
Problém se vyskytuje při použití API JavaMail v případě, že se snažím
vrátit data přílohy.
Co dělám špatně?
Jediné, co mě napadlo je to, že příloha emailu je v base64 a ten input
stream je tedy o několik bytů delší.
Tím to ale nemůže být, protože rozdíl ve velikosti dat by byl daleko
větší 4/3*64509 = 86012.
Tak fakt nevím :-(.
Díky
Fafi