ETnachHause Geschrieben 10. Juli 2003 Geschrieben 10. Juli 2003 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 Zitieren
PerdianMG Geschrieben 10. Juli 2003 Geschrieben 10. Juli 2003 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.