有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用具有完整路径的FileWriter的java

我在创建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”);],它可以保存文件的内容,但它没有放在我首选的位置

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

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


共 (1) 个答案

  1. # 1 楼答案

    确保在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");