Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод файла в текстовом поле 
:(
    Опции темы
diktator
Дата 30.7.2011, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Здравствуйте. Хочу вывести файл большого размера в текстовом поле, подскажите как быть. Размер файла 5МБ, и что если файл будет 1ГБ. Я вывожу так

Код

bigList.setText(s);


где s - весь файл. Собственно из догадок, загружать к примеру файл по области видемости, к примеру 100 строк, ползунок делить на N раз, к примеру 10 если в файле 1000 строк. И при его передвижении открывать нужную часть файла. Или так нельзя? И как вообще можно в текстовое поле дописывать, а то setText() перезаписывает полностью. 
Вторая догадка, выделять много оперативной память, как это сделать тоже не знаю. 3 - комплексно. Помогите пожалуйста разобраться.
PM MAIL   Вверх
dorogoyIV
Дата 30.7.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



[яуоте=диктатор, 30.7.2011,  00:27, пост2383069]и что если файл будет 1ГБ[/яуоте]
маленький упрощенный расчет:
1 Гб = 1000 Мб = 1000 000 Кб = 1000 000 000 Байт
одна буква равна два байта
получаем:
500 000 000 букв
возьмем среднее - слово = пять букв
получаем:
100 000 000 слов
в строку влазиет примерно 10 слов
получаем:
10 000 000 строк
в лист А4 влазиет примерно 55 - 60 строк (возьмем 50 для ровного счета)
получаем:
200 000

двести тысяч листов! это кто такой нахрен писатель?! Лев Толстой?
!!!

Добавлено через 4 минуты и 30 секунд
к разработчикам - какое еще "яуоте" - это была ссылка на текст топикстартера

Добавлено через 11 минут и 15 секунд
вас взломали?
вот это был бы прикол!!!
программистов взломали!!!  smile 
PM MAIL   Вверх
diktator
Дата 30.7.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



dorogoyIV, ну от 2 до 4 в среднем в кодировке UTF-8. Да и кто сказал что там Война и мир, мне просто нужно вывести файл большого объема на экран,  5МБ, 1Гб я просто привел, потому как интересно как это реализуется. 
PM MAIL   Вверх
jk1
Дата 30.7.2011, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

dorogoyIV, ну от 2 до 4 в среднем в кодировке UTF-8.


В UTF-8 от 1 до 4. От 2 до 4 - это UTF-16.

Цитата

интересно как это реализуется.  


Если файл очень большой, то читается и показывается его часть, например при помощи RandomAccessFile



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
diktator
Дата 30.7.2011, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 27.5.2010

Репутация: нет
Всего: нет



Цитата

В UTF-8 от 1 до 4. От 2 до 4 - это UTF-16.

Ну я же написал в среднем, если речь идет о тексте, то я думаю что в основном это будут 2-4 байта на 1 символ.

Не ну прочитать часть файла  можно через обычную конструкцию, брейк сделать. Речь идет об Окнах, как вывести на экран весь файл сразу. То есть как сделать полосу прокрутки не по размеру текста и как ее отлавливать.
PM MAIL   Вверх
dorogoyIV
Дата 30.7.2011, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



может быть сделать свой тексткомпонент, с прокруткой.
пошла прокрутка - читаем файл и пишем прочитанное в свой тексткомпонент (читать файл - RandomAccessFile)
PM MAIL   Вверх
spyswamp
Дата 8.8.2011, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: нет
Всего: 7



Однозначно весь файл в память грузить не надо. smile Забъете 1 Гб, и что дальше? smile  smile 


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
danco0x53
Дата 8.8.2011, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.8.2011

Репутация: нет
Всего: нет



  1. Хорошего простого решения нет.
  2. Для dorogoyIV: Лев Толстой уже давно отдыхает перед логами некоторых программ smile
  3. Вариант с собственным компонентом - не столь плох.
  4. Я бы - при необходимости решения такой задачи (показ с прокруткой в произвольное место большого текстового файла) - проиндексировал бы этот большой файл, набрав массив смещений для каждой строки в файле (гиг лога - пусть 10-20 млн. строк - 40-80 Мб, что приемлемо бывает), и заодно определив количество строк. Далее можно подчитывать файл по мере необходимости показа отдельных строк, держа в памяти только отображаемые (и выбранные) данные. Прокрутку от общего количества строк в файле и размера окна с текстом не так уж сложно будет сделать.
  5. В принципе, можно такой компонентик сделать. Единственное, с чем придется изрядно погеморроится - это если автоперенос слов на новую строку. Тут да smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.