![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 4 Всего: 28 |
Есть функция на вход которой подается объект с таким типом (CharSequence). Есть большой текстовый файл (несколько мегов), который целиком в оперативку ясен пень не лезет. Надо бы написать реализацию интерфейса CharSequence так чтобы он мог брать файл произвольной длины при необходимости подкачивая из диска. Может кто-то где-то видел такие исходники? Буду премного благодарен - сидеть писать самому как-то муторно.
-------------------- Aut viam inveniam aut faciam |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
С произвольной длинной файла довольно сложно, в самом деле, как для произвольной длины реализовывать вот такой метод из charSequence:
? -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 6 Всего: 16 |
Если бы Вы сказали несколько гигов - это бы было понятно. А несколько мегов в оперативку поместится целиком раз сто, и еще место останется. |
|||
|
||||
| ivanovpv |
|
||||||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 4 Всего: 28 |
Элементарно... Читаем в пустоту пока не встретим конец файла
Это смотря в какую оперативку и смотря где JVM крутится. В моем случае JVM крутится в оч. жестких условиях. Ну ладно хорошо пусть будет несколько гигов, легче cтало? -------------------- Aut viam inveniam aut faciam |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Уже обсуждалось.
Добавлено через 3 минуты и 55 секунд И по моему Stampede, даже где-то выкладывал получившийся код. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
И правда элементарно. Работало бы, вообще б цены не не было Допустим цикл из одной итерации - это опечатка
Что мы имеем, если её поправим: в случае начального length=0; длина всегда нулевая, в случае задания начального length=-1; код выдает нечто, не соответствующее длине файла если размер файла превышает диапазон инта. Ну и наконец на сколько-нибудь приличных по размеру файлах это работает огромное количество времени. -------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
| ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 4 Всего: 28 |
Это не цикл из одной итерации, а бесконечный цикл
Предлагайте альтернативу! -------------------- Aut viam inveniam aut faciam |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Будем посмотреть Это сообщение отредактировал(а) jk1 - 29.7.2010, 09:00 -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| pathfinder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 3.3.2010 Репутация: 2 Всего: 10 |
Если файл содержит символы в однобайтовой кодировке(или в многобайтовой но на каждый символ выделяется одно и то же количество, например UTF16) то размер потока можно узнать через File.length()(File.length()/КолБайтНаСимвол)
Иначе только размер потока можно узнать только пробежавшись по всему файлу. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |