我想将文件results.txt写入我机器上的特定目录(Z:\ results准确)。如何将目录指定为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");
}
}
答案 0 :(得分:35)
您应该使用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 */
来指定用于符号创建的目录。这很重要,因为通过将目录名称添加到原始名称来创建文件的答案不像此方法那样独立于系统。
示例代码:
{{1}}
希望它有所帮助。
答案 1 :(得分:26)
使用:
File file = new File("Z:\\results\\results.txt");
您需要将 Windows 中的反斜杠加倍,因为反斜杠字符本身是Java文字字符串中的转义。
对于 POSIX 系统(如Linux),只需使用默认文件路径,而不会使正斜杠加倍。这是因为正斜杠不是Java中的转义字符。
File file = new File("/home/userName/Documents/results.txt");
答案 2 :(得分:4)
只需将完整的目录位置放在File对象中即可。
File file = new File("z:\\results.txt");
答案 3 :(得分:1)
最佳做法是在路径中使用File.separator。