Java - 如何将文件写入指定的目录

use*_*219 28 java directory file bufferedwriter

我想将文件results.txt写入我机器上的特定目录(Z:\结果是准确的).如何指定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");
    }
}
Run Code Online (Sandbox Code Playgroud)

Kau*_*kar 36

您应该使用二次构造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 */
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.


Gre*_*ill 27

使用:

File file = new File("Z:\\results\\results.txt");
Run Code Online (Sandbox Code Playgroud)

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

对于诸如Linux之类的POSIX系统,只需使用默认文件路径而不会使正斜杠加倍.这是因为正斜杠不是Java中的转义字符.

File file = new File("/home/userName/Documents/results.txt");
Run Code Online (Sandbox Code Playgroud)