Не пишете текст в моя txt файл

С този код искам да прочета един текстов файл, да поставя всички елементи в arraylist и да заменя файла със съдържанието на arraylist. Но този код не се записва във файл и не знам защо...

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 е arraylist, където поставям целия си файл и след това се опитвам да поставя съдържащия в същия текстов файл   -  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