我想写一个文件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");
}
}
您应该使用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 */
希望能有所帮助。
使用说明:
File file = new File("Z:\results\results.txt");
在Windows中需要双反斜杠,因为反斜杠字符本身在Java文字字符串中是转义。
对于POSIX系统,如Linux,只使用默认的文件路径,不需要双斜杠。这是因为正斜杠在Java中不是转义字符。
File file = new File("/home/userName/Documents/results.txt");
把完整的目录位置放在File对象中。
File file = new File("z:\results.txt");
最佳实践是使用File。