>>> String fichier = props.getProperty("FICHIER","");
>>> InputStream is = new StringBufferInputStream(fichier);
>>> ZipInputStream zip = new ZipInputStream(is);
>>> ...
>>> Comment puis-je me passer du StringBufferInputStream ?
>> Il y a la une grosse confusion entre les caracteres (char, String,
>> Reader) et les octets (byte, InputStream). En particulier rien ne
>> garantit que la chaine fichier contienne un zip valide (car il a pu y
>> avoir transformation pendant l'encodage de la String).
>> Mais cette discussion releve d'un mauvais enonce du probleme. Que
>> contient la variable fichier ? Le nom du fichier ou son contenu ?
> Son contenu...
Alors ma remarque s'applique. Il n'est pas possible de stocker dans une
String un contenu binaire. J'avais lance la discussion sur cette liste
il y a qqs mois, mais je pense que new String(byte[]).getBytes() est ne
renvoie pas un resultat identique, du a l'encodage.
Quel est l'encodage utilise ?
Sinon une mauvaise solution est:
new ZipInputStream(new ByteArrayInputStream(fichier.getBytes());
Mais le mieux est d'encoder le contenu du fichier avant de le mettre
dans les proprietes. Ou encore mieux, d'utiliser un byte[] plutot qu'une
chaine.
Guillaume.