Java - как я могу записать файл в указанный каталог
Я хочу записать файл result.txt в конкретный каталог на моей машине (Z:\results to exact). Как мне найти каталог в BufferedWriter/FileWriter?
В настоящее время он записывает файл успешно, но в каталог, где находится мой исходный код. Благодаря
public void writefile(){
try{
Writer output = null;
File file = new File("results.txt");
output = new BufferedWriter(new FileWriter(file));
for(int i=0; i<100; i++){
//CODE TO FETCH RESULTS AND WRITE FILE
}
output.close();
System.out.println("File has been written");
}catch(Exception e){
System.out.println("Could not create file");
}
}
Ответы
Ответ 1
Использование:
File file = new File("Z:\\results\\results.txt");
Вам нужно удвоить обратную косую черту в Windows, потому что сам символ обратной косой черты - это escape в строках строки Java.
Для POSIX системы, такой как Linux, просто используйте путь по умолчанию, не удваивая косую черту. это связано с тем, что прямая косая черта не является escape-символом в Java.
File file = new File("/home/userName/Documents/results.txt");
Ответ 2
Вы должны использовать вспомогательный конструктор для File
, чтобы указать каталог, в котором он должен быть символически создан. Это важно, потому что ответы, которые говорят о создании файла путем добавления имени каталога к исходному имени, не являются такими же независимыми от системы, как этот метод.
Пример кода:
String dirName = /* something to pull specified dir from input */;
String fileName = "test.txt";
File dir = new File (dirName);
File actualFile = new File (dir, fileName);
/* rest is the same */
Надеюсь, что это поможет.
Ответ 3
Просто поместите полное расположение каталога в объект File.
File file = new File("z:\\results.txt");
Ответ 4
Лучшая практика - использовать File.separator в путях.