удалить одну строку в текстовом файле? - PullRequest
1 голос
/ 18 апреля 2011

Я создал приложение j2me для чтения-записи текстового файла

, теперь во время чтения я читаю одну строку и отправляю ее на сервер.после этого я хочу удалить эту строку из текстового файла.

Я не понимаю, как это сделать.в каком-то примере я нашел решение, как скопировать исходное содержимое файла в один объект, затем удалить эту строку из объекта, а затем удалить исходный файл и создать новый с этим новым объектом.

Я не считаю это хорошим подходом.Есть ли другой способ сделать это ???

Редактировать:

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

Теперь, если я пойду с подходом, подобным копированию нового объекта, удалению файла и записи нового файла с новым объектом, я найду одну проблему

, если файлудаляется, тогда первое приложение не может найти этот файл, поэтому оно может создать новый файл только с одними данными, а второе приложение создаст новый файл на основе нового объекта, поэтому мои данные будут потеряны

Редактировать:

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

Можно ли установить блокировку для файла RMS из одного приложения ??

Ответы [ 3 ]

4 голосов
/ 18 апреля 2011

Нет, вот как ты это делаешь.

Вы не можете удалить строку из начала файла.Вам нужно будет переписать файл без этой строки.

(Обратите внимание, что это не относится к Java)

1 голос
/ 23 апреля 2011

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

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

Я знаю, что это не очень хороший подход, но я не нашел другого хорошего подхода.

0 голосов
/ 18 апреля 2011

Большинство файловых систем не имеют механизма удаления содержимого в середине. (уверен, что это так в j2me). Таким образом, стандартная практика - открыть новый файл; скопируйте старый файл до того места, куда уходит нежелательная строка, пропустите его, затем скопируйте оставшуюся часть файла. Я знаю, это звучит не элегантно, но это просто так:)

...