35

我想将文件 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");
    }
}
4

4 回答 4

42

您应该使用辅助构造函数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 */

希望能帮助到你。

于 2011-04-26T22:30:11.353 回答
33

利用:

File file = new File("Z:\\results\\results.txt");

您需要在Windows中将反斜杠加倍,因为反斜杠字符本身是 Java 文字字符串中的转义符。

对于Linux 等POSIX系统,只需使用默认文件路径即可,无需双斜杠。这是因为正斜杠不是 Java 中的转义字符。

File file = new File("/home/userName/Documents/results.txt");
于 2011-04-26T22:28:57.000 回答
4

只需将完整的目录位置放在 File 对象中。

File file = new File("z:\\results.txt");
于 2011-04-26T22:28:56.607 回答
1

最佳做法是在路径中使用 File.separator。

于 2019-02-05T09:09:51.197 回答