Java создайте новый файл или переопределите существующий файл - PullRequest
0 голосов
/ 30 сентября 2018

Чего я хочу добиться - это создать файл независимо от того, существует файл или нет.

Я попытался использовать File.createNewFile(), но он будет создан только в том случае, если он еще не существует.Должен ли я использовать File.delete(), а затем File.createNewFile()?

Или есть более ясный способ сделать это?

Ответы [ 3 ]

0 голосов
/ 30 сентября 2018

Вы можете использовать подходящий Writer:

BufferedWriter br = new BufferedWriter(new FileWriter(new File("abc.txt")));
br.write("some text");

Он создаст файл abc.txt, если он не существует.Если это произойдет, файл будет перезаписан.

Вы также можете открыть файл в режиме добавления, используя другой конструктор FileWriter:

BufferedWriter br = new BufferedWriter(new FileWriter(new File("abc.txt"), true));
br.write("some text");

Документация для указанного выше конструктора гласит:

Создает объект FileWriter с учетом объекта File.Если второй аргумент равен true, байты будут записаны в конец файла, а не в начало.

0 голосов
/ 30 сентября 2018

Вызов File#createNewFile безопасен, при условии, что путь допустим и у вас есть права на запись в него.Если файл с таким именем уже существует, он просто вернет false:

File f = new File("myfile.txt");
if (f.createNewFile()) {
    // If there wasn't a file there beforehand, there is one now.
} else {
   // If there was, no harm, no foul
}

// And now you can use it.
0 голосов
/ 30 сентября 2018

FileWriter имеет конструктор, который также принимает 2 параметра: имя файла и логическое значение.Логическое значение указывает, следует ли добавить или перезаписать существующий файл.Вот два примера Java FileWriter, показывающие, что:

Writer fileWriter = new FileWriter("c:\\data\\output.txt", true);  //appends to file

Writer fileWriter = new FileWriter("c:\\data\\output.txt", false); //overwrites file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...