Bonjour � tous,
Dans mon application (JSF) j'upload une archive ZIP (via un composant richfaces) qui me permet de r�cup�rer l'archive sous forme d'un tableau de byte. Je veux ensuite le transformer en un inputStream.
Apr�s avoir cherch� un peu, le code suivant me permet cela :
Ensuite j'enregistre le inputStream sous forme d'un fichier (archive ZIP) avec la m�thode suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 byte[] contenuFichier = item.getData(); int taille = (int) item.getFileSize(); byte[] buf = new byte[taille]; ByteArrayInputStream bin = new ByteArrayInputStream(contenuFichier); bin.read(buf); InputStream in = new ByteArrayInputStream(buf) ; return in;
Avec ce code, mon archive est bien cr�e, cependant elle n'est pas identique � celle upload�e, certains fichiers ne sont pas compr�ss�s � l'identique, des fichiers sont donc corrompus....??
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 File file = new File(filePath); if (file.exists()) { throw new FichierExistantException(String.format("Le fichier '%s' existe déjà. Impossible de remplacer ce fichier.", filePath)); } OutputStreamWriter writer = null; BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(inputStreamContent)); file.createNewFile(); if (deleteOnExit) { file.deleteOnExit(); } writer = new OutputStreamWriter(new FileOutputStream(file)); String line = reader.readLine(); while (line != null) { writer.append(line); writer.append(PropertiesUtils.EOL); line = reader.readLine(); } writer.flush(); } catch (IOException e) { throw new EcritureFichierException(String.format("Problème d'écriture dans le fichier '%s'.", filePath), e); } finally { // Close writer if (writer != null) { try { writer.close(); } catch (IOException e) { throw new EcritureFichierException(String.format("Problème de fermeture du fichier '%s'.", filePath), e); } } // Close reader if (reader != null) { try { reader.close(); } catch (IOException e) { throw new EcritureFichierException(String.format("Problème de fermeture de l'input stream utilisé à l'écriture du fichier '%s'.", filePath), e); } } }
Est-ce quelqu'un � une id�e afin que je puisse faire cela svp ??
Merci d'avance.
Partager