2015-04-12 2 views
0

Привет, мне просто интересно, возможно ли ограничить размер памяти (JVM) при чтении текстового файла размером более 2 гб с использованием формы LineIterator Apache или BufferedReader или Scanner?
Предположим, у меня есть текстовый файл 2gb, и я хочу прочитать 500mb только для этого файла. И когда я доберусь до 500 мб, я уничтожу переменную (String), в которой хранятся данные, и она снова продолжит читать текстовый файл еще с 500 Мб, пока не достигнет максимального размера текстового файла. Таким образом, это похоже на разделение текстового файла на 500 МБ.Файл чтения Java с указанием предела памяти

LineIterator it = FileUtils.lineIterator(file,"UTF-8"); 

    String line = null; 

      try { 
        while (it.hasNext()) { 
        line = it.nextLine(); 


        } 
+1

Самый простой способ - создать '500mb'' byte [] 'и заполнить его. –

+0

Но данные String не байты – tuturyokgaming

+0

Все в файле - это байты. Вы можете создать 'char []', если хотите. –

ответ

0

Вы можете прочитать файл с помощью BufferedReader (чтения в, внутр С.З.)

BufferedReader (новый FileReader ("C: \ Data \ ввода-file.txt"), 8 * 1024)

+0

В чем смысл 8 * 1024? Объявляет ли он максимальный размер? – tuturyokgaming

+0

Это размер, который я пробовал, пожалуйста, продолжайте и измените –

Смежные вопросы