Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Map и работа с файлом / 5 сообщений из 5, страница 1 из 1
11.11.2012, 22:42:37
    #38033871
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Map и работа с файлом
Есть такая проблема:
В файле 2 записи, скажем:
label.descfr= zhenya
label.desc = same text

Удаляю записи ( по представленному ниже фрагменту кода ): считываю из файла и заполняю Map, удаляю эл-нт и перезаписываю файл по образцу Map(a).
При удалении первой записи все нормально - в файле остается одна вторая запись. Но при удалении остававшейся записи удаление ее из файла не происходит! В чем проблема?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 public void deleteFromFile(String name, String fileName) { // name в моем случае - это descfr и desc

   map = new HashMap();
            FileInputStream fileInputStream = new FileInputStream("D:\\..." + fileName);
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream, "UTF-8"));
            String s;
            while ((s = bufferedReader.readLine()) != null) {
                StringTokenizer st = new StringTokenizer(s, "=");
                while (st.hasMoreTokens()) {
                    map.put(st.nextToken(), st.nextToken());
                }
            }


            Iterator it = map.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry mEntry = (Map.Entry) it.next();
                if (mEntry.getKey().equals("label." + name) == true) {
                    it.remove();
                }
            }


            FileOutputStream fileOutputStream = new FileOutputStream("D:\\..." + fileName);
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream, "UTF-8"));
            Iterator it2 = map.entrySet().iterator();
            while (it2.hasNext()) {
                Map.Entry mEntry = (Map.Entry) it2.next();
                System.out.println(mEntry.getKey() + " = " + mEntry.getValue() + "\n");
                bufferedWriter.append(mEntry.getKey() + " = " + mEntry.getValue() + "\n");
            }
            bufferedWriter.flush();
...
Рейтинг: 0 / 0
11.11.2012, 23:56:11
    #38033918
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Map и работа с файлом
Во-первых освойте дебаг, во-вторых не показан клиентский код где происходит ошибка, и в-третьих, думаю потому что во второй строке есть пробелы до и после знака =
...
Рейтинг: 0 / 0
12.11.2012, 00:17:17
    #38033927
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Map и работа с файлом
Ошибки, как таковой, нету. Меня не устраивает то - что при удалении остававшейся записи удаление ее из файла не происходит.
Пробелов после и до "=" нету, это я на скорую руку поставил, прошу прощения.
...
Рейтинг: 0 / 0
12.11.2012, 00:28:27
    #38033935
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Map и работа с файлом
ну покажи код то емое - где именно не происходит удаление
...
Рейтинг: 0 / 0
12.11.2012, 00:43:30
    #38033953
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Map и работа с файлом
Удаление не происходит в файле в котором изначально и находятся 2 записи. Приведенный мною код успешно сработал, при попытке удалить первую запись(запись исчезла из файла). В файле осталось только вторая запись - вот ее при повторном выполнении моего метода и не удаляет.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Map и работа с файлом / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]