Veröffentlicht 10. Juli 200322 j Hallo zusammen, in meinem Programm ist es bisher so geregelt, dass erst eine Datei komplett in ein byte-array gelesen wird und danach wird dieses byte-array auf einen GZIPOutputStream geschickt. Jetzt möchte ich das so machen, dass gleich beim Lesen auch schon gleich geschrieben wird, um die Performance zu verbessern. Hat da jemand einen Ansatz für mich? Weiss gar nicht, wonach ich da suchen soll. Hatte schon überlegt, jedes Byte, dass ich gelesen hab, gleich wegzuschreiben, aber gibt es vielleicht noch eine elegantere Lösung? Grüsse, ET
10. Juli 200322 j in meinem Programm ist es bisher so geregelt, dass erst eine Datei komplett in ein byte-array gelesen wird und danach wird dieses byte-array auf einen GZIPOutputStream geschickt. Jetzt möchte ich das so machen, dass gleich beim Lesen auch schon gleich geschrieben wird, um die Performance zu verbessern. Hat da jemand einen Ansatz für mich? Naja eigentlich ganz einfach - du brauchst halt eine Quelle, wo deine Daten herkommen (einen InputStream) und ein Ziel, wo die Daten hingeschrieben werde (einen OutputStream). Als Beispiel mal der einfache Weg, eine Datei direkt zu kopieren: public void copyFile(File source, File destination) throws IOException { InputStream in = new BufferedInputStream(FileInputStream(source)); OutputStream out = new BufferedOutputStream(new FileOutputStream(destination)); for(int data = in.read(); data > -1; data = in.read()) { out.write(data); } out.flush(); out.close(); in.close(); } Ciao Christian
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.