FileNotFoundException(系统找不到指定的路径)

时间:2010-12-13 13:59:12

标签: java file-io

我得到了这个例外:

java.io.FileNotFoundException: C:\...\filename.xml (The system cannot find the path specified)

使用此代码:

FileWriter fileWriter = new FileWriter(new File(path + date + time "filename.xml"));
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write("data");

存在路径,但需要创建“日期”和“时间”的目录。应用程序对目录具有完全权限。

有什么想法吗?

5 个答案:

答案 0 :(得分:8)

  

问题是因为我正在创建一个用于编写文件的子目录。所以我目前有C:\example\并希望在C:\example\<date>\<time>\<files>

中编写我的文件

在写作之前,您需要致电File#mkdirs()

File file = new File("C:/example/newdir/newdir/filename.ext");
file.mkdirs();
// ...

答案 1 :(得分:4)

请假设计算机正确且您错了。

并且,在这种情况下,您要写入的目录不会退出(或者没有权限这样做)。

  1. 检查当前工作目录System.getProperty("user.dir")
  2. 从那里调试

答案 2 :(得分:2)

代码对我有用。 (需要为要显示在文件中的文本添加writer.close()。)

答案 3 :(得分:1)

您还需要将新创建的文件和文件夹路径转换为字符串。

File folder = new File("src\\main\\json\\", idNumber);
    folder.mkdir();

    if (!folder.exists()) {
        try {
            folder.createNewFile();
        } catch (IOException ex) {
            Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    ...
    ...
    FileOutputStream output = null;
        File file;
        String content = data.toString();

        try {

            String folder_location = folder.toString() + "\\";
            String filename = "CurrentInfo";
            file = new File(folder_location + filename.toString() + ".json");
            output = new FileOutputStream(file);

            if (!file.exists()) {
                file.createNewFile();
            }

            byte[] content_in_bytes = content.getBytes();

            output.write(content_in_bytes);
            output.flush();
            output.close();

        } catch (IOException ex) {
            Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                if (output != null) {
                    output.close();
                }
            } catch (IOException e) {
                Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, e);
            }
        }

    }

答案 4 :(得分:1)

对我有用的东西:项目所在的文件夹名称中有一个空格。我用连字符(-)替换了空格。现在,文件的相对路径没有空格(%20)。这种变化对我有用。希望它可以帮助某人。