Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 594
#1

Работа с файлами до 10мб - Программирование Android

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

Добрый день

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

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



Добавлено через 10 часов 41 минуту
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2016, 09:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами до 10мб (Программирование Android):

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

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

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

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

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

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

4
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 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_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 594
28.03.2016, 11:09  [ТС] #3
Паблито, необходим один файл, он на самом деле будет выступать логом для датчика.
Около 25 символов в строке (юникод) ~50 байт.
Я думаю о StringBuilder, хранить несколько записей в оперативке, потом писать в файл.
Для реализации перезаписи файла смотрю на RandomAccessFile, туда ли я смотрю?
0
Pablito
28.03.2016, 11:14
  #4

Не по теме:

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

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

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

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

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

Eclipse: работа с текстовыми файлами - Программирование Android
Добрый день, информации по этому вопросу мало, нашел простой текстовый редактор, но (из-за моей криворукости скорее всего) он не сохраняет...

Работа с txt файлами в Android. Путь к файлу - Программирование Android
Здравствуйте! Уже 3ий день не могу разобраться с тем, как считывать из txt файла. Пишу на Java в IntelliJ IDEA. Я использую ф-ю...

Работа с файлами "налету" - Программирование Android
Доброго времени суток, уважаемые! Вопрос в следующем. Есть файл в облаке, как вариант грузим файл на dropbox Задача в том, чтобы...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
29.03.2016, 11:16
Ответ Создать тему
Опции темы

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