使用带有完整路径的FileWriter

时间:2013-07-18 08:42:09

标签: java file java-io filewriter

我在创建FileWriter时指定了文件位置的完整路径,但是我没有看到正在创建的文件。在文件创建过程中我也没有收到任何错误。

以下是我的代码片段:

public void writeToFile(String fullpath, String contents) {
    File file = new File(fullpath, "contents.txt");
    if (!file.exists()) {
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    try {
        BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()));
        bw.write(contents);
        bw.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

完整路径为"D:/codes/sources/logs/../../bin/logs"。 我搜索了整个目录,但我无法在任何地方找到该文件。 如果我只指定文件名[File file = new File(“contents.txt”);],则可以保存文件的内容,但它不会放在我的首选位置。

如何将文件内容保存到首选位置?

更新: 我使用file.getAbsolutePath()打印完整路径,并获得正确的目录路径。 [D:\ codes \ sources \ logs .... \ bin \ logs \ contents.txt]但是当我在目录中查找文件时,我找不到它。

1 个答案:

答案 0 :(得分:0)

确保在path参数中添加尾部反斜杠,以便将路径识别为目录。示例提供的是使用转义的反斜杠的Windows操作系统。对于更健壮的方法,请使用系统的file.separator属性。

<强>作品

writeToFile("D:\\Documents and Settings\\me\\Desktop\\Development\\",
                "this is a test");

不起作用

writeToFile("D:\\Documents and Settings\\me\\Desktop\\Development",
                "this is a test");

文件分隔符示例

String fs = System.getProperty("file.separator");
String path = fs + "Documents and Settings" + fs + "me" + fs
        + "Desktop" + fs + "Development" + fs;
writeToFile(path, "this is a test");