Heim > Java > javaLernprogramm > Teilen Sie eine einfache Methode, um die Ausnahme zu lösen, dass Java große Dateien liest

Teilen Sie eine einfache Methode, um die Ausnahme zu lösen, dass Java große Dateien liest

王林
Freigeben: 2024-02-19 21:42:06
Original
1251 Leute haben es durchsucht

Teilen Sie eine einfache Methode, um die Ausnahme zu lösen, dass Java große Dateien liest

Teilen einer einfachen Methode zur Lösung der Ausnahme beim Lesen großer Java-Dateien

Im Java-Entwicklungsprozess müssen wir manchmal den Lesevorgang großer Dateien durchführen. Da große Dateien jedoch viel Speicherplatz beanspruchen, kommt es häufig zu ungewöhnlichen Situationen wie einem Speicherüberlauf. In diesem Artikel wird eine einfache Problemumgehung zusammen mit spezifischen Codebeispielen beschrieben.

Bei der Verarbeitung großer Dateien verwenden wir normalerweise segmentiertes Lesen, um die Datei zur Verarbeitung in mehrere kleinere Teile zu unterteilen, um zu vermeiden, dass die gesamte Datei auf einmal in den Speicher geladen wird. Hier ist ein einfaches Beispiel, das zeigt, wie man eine große Datei liest und ihren Inhalt ausgibt:

import java.io.*;

public class LargeFileReader {

    public static void main(String[] args) {
        // 文件路径
        String filePath = "path/to/large/file.txt";
        // 每次读取的字节数
        int bufferSize = 1024;

        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            // 用于存储每次读取的数据
            char[] buffer = new char[bufferSize];
            // 用于存储每次读取的有效字符数
            int readChars;

            // 循环读取文件直到文件结束
            while ((readChars = br.read(buffer, 0, bufferSize)) != -1) {
                // 输出当前读取的数据
                System.out.print(new String(buffer, 0, readChars));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Nach dem Login kopieren

Im obigen Beispiel haben wir BufferedReader verwendet, um eine große Datei Zeile für Zeile zu lesen. Zunächst definieren wir eine Puffergröße (hier 1024 Bytes), um die Daten für jeden Lesevorgang zu speichern.

Dann verwenden wir FileReader, um die Datei in BufferedReader einzulesen. Anschließend lesen wir mit der Methode read die angegebene Anzahl Zeichen in den Puffer ein und speichern die gültige Anzahl Zeichen in der Variable readChars. Wenn readChars -1 ist, bedeutet dies, dass das Ende der Datei gelesen wurde.

Abschließend geben wir die aktuell gelesenen Daten über die Methode System.out.print aus. Auf diese Weise können wir den Inhalt einer großen Datei nach und nach lesen, ohne die gesamte Datei auf einmal in den Speicher zu laden, wodurch das Risiko eines Speicherüberlaufs vermieden wird.

Es ist zu beachten, dass wir in tatsächlichen Anwendungen je nach Bedarf möglicherweise auch andere Verarbeitungen der gelesenen Daten durchführen müssen, z. B. das Schreiben in andere Dateien, die Durchführung komplexer Datenberechnungen usw.

Zusammenfassend lässt sich sagen, dass wir durch die Verwendung segmentierter Lesevorgänge das Problem der Ausnahmen beim Lesen großer Java-Dateien lösen können und auch die Speichernutzung beim einmaligen Laden erheblich reduziert wird. Ich hoffe, dass die einfache Methode in diesem Artikel jedem helfen kann und flexibel in der tatsächlichen Entwicklung eingesetzt werden kann.

Referenz:

  • Offizielle Oracle-Dokumentation: https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html

Das obige ist der detaillierte Inhalt vonTeilen Sie eine einfache Methode, um die Ausnahme zu lösen, dass Java große Dateien liest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage