Как бы я удалить данные из внешнего файла? - PullRequest
0 голосов
/ 01 декабря 2009

Формат, который у меня есть во внешнем файле:

name
tel no
mob no
address

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

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

 {
   FileOutputStream file; 
   PrintStream out; 

   try {   file = new FileOutputStream("../files/example.buab", true);   
          out = new PrintStream(file);       
          out.println(txtname.getText());      
          out.println(txtnum.getText());     
          out.println(txtmob.getText());
          out.println(txtadd1.getText()); 

          System.err.println ("");                    
          out.close();              
       }            
          catch (Exception e)
                {                   
                 System.err.println ("Error in writing to file");          
                }
   }

Ответы [ 3 ]

1 голос
/ 01 декабря 2009

Вам действительно нужно немедленно удалить контакт из файла?

Обычно вы делаете что-то вроде этого:

  1. Импорт содержимого файла в вашу модель, список объектов Contact
  2. Применить все ваши правки к модели (изменить значения, добавить контакт, удалить контакт)
  3. Сохраните ваши изменения, iaw перезаписать файл с вашей моделью.

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

0 голосов
/ 01 декабря 2009

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

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

Почему бы не организовать этот файл в формате XML? Это то, что ваша спецификация позволяет?

0 голосов
/ 01 декабря 2009

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

Почему бы вам не использовать вместо этого (встроенную) базу данных, чтобы можно было просто выполнить простой оператор SQL DELETE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...