У меня проблема с чтением файла большего размера в JAVA. Файл, который я использовал для чтения имеет размер 750 Мб так, когда я использовал для чтения файла с помощью BufferedReader, сканера и LineNumberReader все не в состоянии читать и приводит к OutOfMemoryError.Как читать указанное количество строк в текстовом файле?
Есть ли какой-либо простой способ прочитать этот файл большего размера? Есть ли способ, пропуская некоторое количество строк и прочитав конкретную строку после пропусков строк.
код, который я использовал для чтения файла:
FileInputStream inputStream = null;
Scanner sc = null;
try
{
inputStream = new FileInputStream(path);
sc = new Scanner(inputStream, "UTF-8");
while (sc.hasNextLine())
{
String line = sc.nextLine();
}
if (sc.ioException() != null)
{
throw sc.ioException();
}
}
finally
{
inputStream.close();
sc.close();
}
Например:
Если я думаю, что читать несколько строк из 1001 до 2000, как я могу читать те отдельные строки из этого файла большего размера.
Заранее спасибо.
Просто используйте ['RandomAccessFile'] (https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html) –
При чтении вы продолжаете обновлять переменную' int line' что вы увеличиваете после (или до, в зависимости от того, хотите ли вы цифры на основе 0 или 1), читая строку. Теперь, когда эта переменная находится в диапазоне от 1001 до 2000, вы делаете что-то с линией. Иначе вы его отбросите. –
Как вы хотите обработать файл? Построчно? В блоках с фиксированным или переменным размером? Возможно, вы захотите прочитать файл за один проход, но выполните обработку между чтением записей и не сохраните их все в памяти. –