Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
81 / 78 / 11
Регистрация: 08.08.2013
Сообщений: 649
1

Работа с файлами до 10мб

28.03.2016, 09:57. Просмотров 325. Ответов 4
Метки нет (Все метки)

Добрый день

Подскажите способы\технологии работы с файлами на андроид решающие мою задачу.
Мне необходимо писать в файл раз в секунду ~50 байт текста, причем нужно организовать перезапись файла по кольцу и ограничить размер файла в 10мб.
Тоесть добавлять в файл строки пока он не вырастит до 10мб, а после начать заново перезапись строк.

Сохраняться в файл будут сформированные строки (String + \r\n).



Добавлено через 10 часов 41 минуту
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2016, 09:57
Ответы с готовыми решениями:

Работа с файлами
У меня есть проблема , мне нужно чтобы из корневой папки андроид приложение...

Работа с файлами
Все привет , у меня вопрос , я помню когда учил java там была такая функция для...

Работа с файлами
Всем привет, мне нужно по нажатию на кнопку получить окно с музыкой на...

Работа с файлами
Подскажите, как лучше всего работать с файлами, а именно записывать строку в...

Работа с файлами, музыкой
Нужно реализовать извлечение музыки из памяти телефона в приложение и чтобы они...

4
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 1
28.03.2016, 10:57 2
а почему одним файлом и 10 мб, почему не 10 по 1 мб которые можно брать по-очереди и держать в памяти только 1?

создать массив char[] = new char[1_000_000]; (или byte х.з. что там в задаче на самом деле)
и писать в него, а как заполнится - скидывать на диск, при заполнении последнего, десятого массива - брать первый и писать снова, писанины на пол часа

50 байт каждую секунду это 27 часов непрерывной записи (если предположить что там по 50 байт, а не по 100 потому что юникод)
1
_Night_Scream_
81 / 78 / 11
Регистрация: 08.08.2013
Сообщений: 649
28.03.2016, 11:09  [ТС] 3
Паблито, необходим один файл, он на самом деле будет выступать логом для датчика.
Около 25 символов в строке (юникод) ~50 байт.
Я думаю о StringBuilder, хранить несколько записей в оперативке, потом писать в файл.
Для реализации перезаписи файла смотрю на RandomAccessFile, туда ли я смотрю?
0
Pablito
28.03.2016, 11:14
  #4

Не по теме:

теоретически да, но я не работал с RandomAccessFile, поэтому промолчу

0
_Night_Scream_
81 / 78 / 11
Регистрация: 08.08.2013
Сообщений: 649
29.03.2016, 11:16  [ТС] 5
Поковырял RandomAccessFile, вероятно это то, что нужно.
Возник в целом вопрос, как сделать запись по кольцу или shift mode.
Задача - иметь постоянно обновляющийся архив, который будет работать автономно.

Хотелось бы услышать ребят, которые работали с файлами на java.
Я придумал такое решение.
Файл пишется строками, есть всегда перевод каретки, строки имеют разную длину.
Писать append нет проблем, перед записью проверять размер файла и если он больше 10мб, то очистить первые 10%
Тут не понятно как сделать это быстро, в самом файле никак нельзя удалять байты\символы, можно только с конца, мне же надо первые ~10 000 строчек удалить из файла, я так понимаю делается это только копированием в новый файл без этих данных, но это занимает весьма много времени, обязательно надо делать в доп. потоке.
По сути надо быстро скопировать файл\перезаписать без первой его части, чтобы он не переполнялся.

Как это сделать быстро\удобно\правильно?
Буду благодарен за любые мысли, а за готовую реализацию готов поощрить печенькой.
0
29.03.2016, 11:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2016, 11:16

Работа с файлами на эмуляторе
Всем привет. У меня вопрос след. характера. Моя программа читает и создает xml...

Работа с файлами (radstudio c++builder)
Подскажите, пожалуйста, работа с файлами в приложении на андроид (создание тхт...

Eclipse: работа с текстовыми файлами
Добрый день, информации по этому вопросу мало, нашел простой текстовый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru