SPEISEKARTE

Java-Datei kopieren (Puffergröße ändern)

Inhaltsverzeichnis

Java-Datei kopieren (Puffergröße ändern)

Auf Java java.io.InputStream,,java.io.OutputStream bei
Vorstellung eines Beispielprogramms, das die Kopierverarbeitung mithilfe von Eingabe-/Ausgabeströmen durchführt.
Bei der Kopierverarbeitung mittels Streams können auch große Dateien relativ schnell kopiert werden, indem die Lesepuffergröße erhöht wird.
Im Beispielprogramm kann die Größe des Datenlesepuffers mit einem Argument angegeben werden.

Der angegebene Lesepufferbereich ist innerhalb des JavaVM-Heaps gesichert, sodass eine zu große Größe zu einer schlechten Effizienz führt. Daher prüfen wir beim Kopieren von Dateien auch die effiziente Größe des Datenlesepuffers.

Beispielprogramm


Ausführung

Um die Beispielprogrammdatei zu kopieren, haben wir eine 100 MB große Datei „100M.txt“ direkt unter dem Laufwerk C vorbereitet. Im Beispielprogramm C:\100M.txt , liest Daten in Einheiten mit einer Puffergröße von 1000 KB. C:\a.txt Kopieren nach.

Das Beispiel wurde in der folgenden Umgebung ausgeführt.
Betriebssystem: WindowsXP
CPU: Athlon 1,46 GHz
Speicher: 1 GB
JRE: 1.6.4

◆Ausführungsbeispiel

/** * Ausführungsbeispiel * @param args */ public static void main(String[] args) { try { copyStream("C:\\100M.txt", "C:\\a.txt",1000); } Catch (IOException e) { e.printStackTrace(); } }

◆Ausführungsergebnisse


Puffergröße ändern

Um die effiziente Größe des Datenlesepuffers beim Kopieren von Dateien zu überprüfen, verwenden Sie das dritte Argument von copyStream as
Die Ergebnisse einer ähnlichen Kopierverarbeitung in 1-KB-, 100-KB-, 1000-KB- und 10000-KB-Einheiten sind unten zusammengefasst.



Obwohl aus den obigen Ergebnissen allein keine Schlussfolgerung gezogen werden kann, wenn Sie die Größe des Datenlesepuffers in Einheiten von 1000 KB angeben,
Die Ergebnisse zeigten, dass es hinsichtlich der Heap-Nutzung und der Verarbeitungszeit während der Kopierverarbeitung effizient war.
Ähnliche Ergebnisse wurden auch dann erzielt, wenn die Dateigröße erhöht wurde (ca. 1 GB).

Wenn Sie hingegen eine kleine Datei kopieren (ungefähr 1 MB oder weniger), ist eine Erhöhung der Puffergröße verschwenderisch, daher ist es meiner Meinung nach besser, etwa 100 KB anzugeben.

Verwenden Sie FileChannel für höhere Geschwindigkeiten


 java.io.InputStream,,java.io.OutputStream
Die Kopierverarbeitung ist wichtig für das Verständnis von Eingabe-/Ausgabeströmen, aber
Neue I/O eingeführt in J2SE1.4 java.nio.channels.FileChannel#transferTo
Mit dieser Methode können Sie Dateien noch effizienter kopieren.
Als Nächstes zeige ich Ihnen, wie Sie mit FileChannel einfach und schnell Dateien kopieren.
Java-Dateikopie (einfach und schnell)

  • URLをコピーしました!
Inhaltsverzeichnis