Я использую следующую базовую функцию, которую я скопировал из сети для чтения текстового файла.
public void read ()
{
File file = new File("/Users/MAK/Desktop/data.txt");
System.out.println("Start");
try
{
//
// Create a new Scanner object which will read the data from the
// file passed in. To check if there are more line to read from it
// we check by calling the scanner.hasNextLine() method. We then
// read line one by one till all line is read.
//
Scanner scanner = new Scanner(file);
int lineCount = 0;
if (scanner == null)
{
System.out.println("Null File");
}
else
{
System.out.println(scanner.toString());
}
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
System.out.println("Line " + lineCount +" contain : " + line);
lineCount++;
}
System.out.println("End of Try Bluck");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
System.out.println("Exception Bluck");
}
System.out.println("End");
}
}
Он отлично работает с файлами среднего и малого размера (содержащими от 10 до 20 тысяч строк данных). Однако он не работает с файлами, содержащими 500 тысяч строк. Я не получаю ошибку (по крайней мере, никого не вижу). так, что происходит? что я должен сделать здесь, чтобы иметь возможность подготовить такие большие файлы?
примечание: я уже увеличил кучу на 2 ГБ на тестовой машине с Windows Server 2008 с 4 ГБ оперативной памяти. но это мало помогло!
Пожалуйста, кто-нибудь может сказать мне, что я должен делать здесь?
Обновление 01
Ниже приведен вывод
Начинать
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][источник закрыт=false][skiped=false][разделитель групп=\,] [десятичный разделитель=.][положительный префикс=][отрицательный префикс=\Q-\E][положительный суффикс=][отрицательный суффикс=][строка NaN=\Q�\E][бесконечная строка=\Q∞\E ]
Конец попытки Блэк
Конец