2014-09-12 2 views
1

Я хочу загрузить большой текстовый файл быстро в JTextArea с использованием компонентов Swing. Я попытался загрузить файл размером 100 МБ, и он загружается в течение нескольких секунд. Но когда я пытаюсь загрузить более 200 Мбайт файлов, это занимает более 5 минут.Как загрузить большой текстовый файл в JTextArea

Как загрузить большие файлы данных? Для чтения я использую BufferedReader и для отображения использую метод setText() от JTextArea.

+1

см. Возможный [дубликат] (http://stackoverflow.com/q/25526833/2587435) –

+1

см. [Это] (http://stackoverflow.com/a/25526869/3755692) ответить – msrd0

+0

Я уже пробовал с SwingWorker также. Но, он результаты такие же. Вот почему я снова задал вопрос. Спасибо за ответ. Пожалуйста, попробуйте. – user3912886

ответ

0

Если это только для отображения содержимого, вы можете использовать JTable без линий сетки. Затем вы можете использовать RandomAccessFile с MappedByteBuffer канала файла. И для строк таблицы только удерживается список позиций файла каждой строки.

Это должно быть довольно быстро, и даже ограниченное редактирование может быть реализовано, поддерживая список изменений, таких как вставки/удаления/модификации строк.

Code for files < 2GB.

+0

Я хочу загрузить файл в JTextArea.How использовать JTable для загрузки большого текстового файла в JTextArea. – user3912886

+0

Хорошо, попробуйте 'byte [] data = Files.readAllBytes (file.toPath())', вывести из него строку и затем setText(). Это должно быть самым быстрым с минимальным количеством мешковины. –

+0

Вышеприведенное заявление также занимало такое же количество времени, как указано выше. Проверьте его еще раз. – user3912886

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