Java的Scanner類本身不支持直接處理大文件輸入,因為它會將整個輸入流加載到內存中。對于大文件,這可能會導致內存不足的問題。為了處理大文件輸入,你可以使用BufferedReader類,它可以逐行讀取文件內容,而不會將整個文件加載到內存中。
以下是一個使用BufferedReader和Scanner處理大文件輸入的示例:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class LargeFileInput {
public static void main(String[] args) {
File file = new File("large_file.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file));
Scanner scanner = new Scanner(br)) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 處理每一行數據
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在這個示例中,我們首先使用BufferedReader逐行讀取文件內容,然后使用Scanner對每一行進行處理。這樣,即使文件非常大,我們也可以避免內存不足的問題。