Код, который я написал, должен переписываться над содержимым выбранного текстового файла, но он добавляет его. Что я делаю неправильно?
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
FileWriter f2;
try {
f2 = new FileWriter(fnew,false);
f2.write(source);
/*for (int i=0; i<source.length();i++)
{
if(source.charAt(i)=='\n')
f2.append(System.getProperty("line.separator"));
f2.append(source.charAt(i));
}*/
f2.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ИЗМЕНИТЬ
Я попытался создать новый файл temp.txt и записать в него новое содержимое, удалив этот текстовый файл и переименовав temp.txt в этот. Дело в том, что удаление всегда безуспешно. Я не думаю, что мне нужно изменить права пользователя для этого?
Кроме того, часть моей программы перечисляет все файлы в этом каталоге, поэтому я предполагаю, что они используются программой и поэтому не могут быть удалены. Но почему бы не перезаписать?
решаемые
Мой самый большой "D'oh" момент! Я компилировал его на Eclipse, а не cmd, где я его выполнял. Поэтому мои недавно скомпилированные классы перешли в папку bin, а скомпилированный файл класса с помощью командной строки остались прежними в моей папке src. Я перекомпилировал свой новый код, и он работает как шарм.
File fold=new File("../playlist/"+existingPlaylist.getText()+".txt");
fold.delete();
File fnew=new File("../playlist/"+existingPlaylist.getText()+".txt");
String source = textArea.getText();
System.out.println(source);
try {
FileWriter f2 = new FileWriter(fnew, false);
f2.write(source);
f2.close();
} catch (IOException e) {
e.printStackTrace();
}