Не записывать текст в мой текстовый файл

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

public void delete(String lineToDelete, String nameFile) throws IOException {
        file = new File(nameFile);
        fw = new FileWriter(file,false);

        read = new Scanner(file);
        while (read.hasNext()) {
            itemFile.add(read.nextLine());
        }
        for (int i = 0; i < itemFile.size(); i++) {
            if (itemFile.get(i).equals(lineToDelete)) {
                itemFile.remove(i);
                break;
            }
        }
        for (String itemFile1 : itemFile) {
            fw.write(itemFile1);
            fw.write(System.lineSeparator()); //new line
        }
    }

person cavaler12345    schedule 22.05.2015    source источник
comment
Выдает какие-нибудь ошибки? Пробовали ли вы выполнить код с помощью отладчика или операторов печати?   -  person scrappedcola    schedule 22.05.2015
comment
Нет... у меня нет ошибок..   -  person cavaler12345    schedule 22.05.2015
comment
Избыточные теги Java не нужны. Как насчет того, чтобы этот код требовал определенной версии?   -  person ChiefTwoPencils    schedule 22.05.2015
comment
Попробуйте закрыть/сбросить ваши потоки/писатели.   -  person Pshemo    schedule 22.05.2015
comment
itemfile - это список массивов, в который я помещаю весь свой файл, и после этого я пытаюсь поместить содержимое в тот же текстовый файл.   -  person cavaler12345    schedule 22.05.2015
comment
потому что вы используете «fwp» вместо «fw»   -  person User404    schedule 22.05.2015
comment
нажмите не ту клавишу здесь, в моем коде fw   -  person cavaler12345    schedule 22.05.2015


Ответы (2)


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

    ...
    read.close();
    FileWriter fw = new FileWriter(file,false);
    for (String itemFile1 : itemFile) {
        fw.write(itemFile1);
        fw.write(System.lineSeparator()); //new line
    }
    fw.close();
person JP Moresmau    schedule 22.05.2015

Я считаю, что это опечатка. В последнем цикле for у вас есть fwp.write(...) когда имя вашей переменной fw. Это может быть проблемой.

person Nick Abate    schedule 22.05.2015