Java laden von Binär-Dateien
Bitte zeigen Sie mir das beste/schnelle Methoden für:
1) Laden sehr klein Binär-Dateien in den Speicher. Zum Beispiel Symbole;
2) Laden/Lesen von sehr großen binären Dateien in einer Größe von 512Mb+. Vielleicht muss ich verwenden memory-mapped-IO?
3) Ihre gemeinsame Wahl, wenn Sie nicht wollen, zu denken über die Größe/Geschwindigkeit, sondern müssen nur das tun was: liest alle bytes in den Speicher?
Danke!!!!!
P. S. Sorry für die vielleicht triviale Frage. Bitte nicht schließen;)
P. S. 2. Spiegel der analogen Frage für C#;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für memory-mapped-Dateien, java hat eine nio-Paket: Memory-Mapped-Dateien
Check-out byte-stream-Klasse für kleine Dateien:Byte-Stream
Check-out buffered I/O für größere Dateien: Gepufferten Stream
Der einfachste Weg, um zu Lesen, eine kleine Datei in den Speicher:
Im echten Leben, Sie bräuchte ein paar try/catch-Blöcke im Fall von I/O-Fehler.
Wenn beim Lesen einer großen Datei würde ich dringend empfehlen NICHT, es zu Lesen alle einzeln in den Speicher wenn möglich vermieden werden. Lesen und verarbeiten Sie in Stücke. Es ist eine sehr seltene Anwendung, die wirklich braucht, um zu halten eine 500MB Datei in den Arbeitsspeicher alle auf einmal.
Gibt es keine solche Sache wie memory-mapped I/O in Java. Wenn es das ist, was Sie tun müssen, würden Sie müssen nur zu erstellen, die ein wirklich großes byte-array.