powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Map и работа с файлом
5 сообщений из 5, страница 1 из 1
Map и работа с файлом
    #38033871
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая проблема:
В файле 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
Map и работа с файлом
    #38033918
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых освойте дебаг, во-вторых не показан клиентский код где происходит ошибка, и в-третьих, думаю потому что во второй строке есть пробелы до и после знака =
...
Рейтинг: 0 / 0
Map и работа с файлом
    #38033927
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибки, как таковой, нету. Меня не устраивает то - что при удалении остававшейся записи удаление ее из файла не происходит.
Пробелов после и до "=" нету, это я на скорую руку поставил, прошу прощения.
...
Рейтинг: 0 / 0
Map и работа с файлом
    #38033935
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну покажи код то емое - где именно не происходит удаление
...
Рейтинг: 0 / 0
Map и работа с файлом
    #38033953
Evgeniy_Aleksandrovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удаление не происходит в файле в котором изначально и находятся 2 записи. Приведенный мною код успешно сработал, при попытке удалить первую запись(запись исчезла из файла). В файле осталось только вторая запись - вот ее при повторном выполнении моего метода и не удаляет.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Map и работа с файлом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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