2010-05-13 2 views

Répondre

12

Si vous utilisez déjà Apache commons-io, vous pouvez le faire avec:

IOUtils.copy(byteArrayInputStream, new FileOutputStream(outputFileName)); 
+0

Ya. Tellement plus propre. – SingleShot

+0

C'est génial, mais j'ai trouvé que j'avais besoin de créer le FileoutputStream en dehors de l'appel à copier pour pouvoir le fermer. Certains des IOUtils vider le tampon, mais j'avais ce problème que les fichiers de sortie n'étaient pas ouverts parfois. Une fois que j'ai ajouté un appel à close() sur le FileOutputStream, cela a très bien fonctionné. Dans l'ensemble, je suis tellement heureux que j'ai trouvé les trucs IOUtils, je l'ai utilisé pour d'autres choses aussi. – titania424

2

Vous pouvez utiliser le code suivant:

ByteArrayInputStream input = getInputStream(); 
FileOutputStream output = new FileOutputStream(outputFilename); 

int DEFAULT_BUFFER_SIZE = 1024; 
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; 
long count = 0; 
int n = 0; 

n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE); 

while (n >= 0) { 
    output.write(buffer, 0, n); 
    n = input.read(buffer, 0, DEFAULT_BUFFER_SIZE); 
} 
+0

Merci Gaurav, va l'essayer maintenant. – Ankur

5
InputStream in = //your ByteArrayInputStream here 
OutputStream out = new FileOutputStream("filename.jpg"); 

// Transfer bytes from in to out 
byte[] buf = new byte[1024]; 
int len; 
while ((len = in.read(buf)) > 0) { 
    out.write(buf, 0, len); 
} 
in.close(); 
out.close(); 
-3
ByteArrayInputStream stream = <<Assign stream>>; 
    byte[] bytes = new byte[1024]; 
    stream.read(bytes); 
    BufferedWriter writer = new BufferedWriter(new FileWriter(new File("FileLocation"))); 
    writer.write(new String(bytes)); 
    writer.close(); 

Buffered Writer améliore les performances en écrivant des fichiers comparés à FileWriter.

+1

Les auteurs sont pour les fichiers de caractères, pas les fichiers binaires –

Questions connexes