首页 > 解决方案 > 为什么我在 Java 中收到 FileNotFoundException(文件名、目录名或卷标语法不正确)?

问题描述

我正在尝试创建一个程序,它需要简单的输入并将其写入文件。问题是,当它尝试打开要写入的文件时,出现错误:“java.io.FileNotFoundException: C:\Users\bobdu\eclipse-workspace\SHIPTesting.txt(文件名、目录名或卷标语法不正确)。” 我什至有一个非常简单的程序,我得到了同样的错误:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;

public class OutputTesting {
    public static void main(String[] args)
    {
     try
     {
        PrintWriter outputStream = new PrintWriter(new FileOutputStream("‪C:\\Users\\bobdu\\eclipse-workspace\\SHIPTesting.txt"));
        outputStream.println("Output line 1");
        outputStream.println("Output line 2");
        outputStream.close();
    }
    catch (FileNotFoundException e)
    {
        System.err.println(e.getMessage());
        e.printStackTrace(System.err);
        System.exit(0);
    }
 }

}

该文件确实存在,我可以在我的目录中找到它。预先感谢您帮助我。

标签: javaiofilenotfoundexception

解决方案


您的路径字符串中有一个额外的不可打印字符。它也可以在复制粘贴中幸存下来,因此我能够重现您的错误。这是一个测试:

    String yours = "‪C:\\Users\\bobdu\\eclipse-workspace\\SHIPTesting.txt";
    String retyp = "C:\\Users\\bobdu\\eclipse-workspace\\SHIPTesting.txt";

    System.out.println("yours len="+yours.length()+", retype=" + retyp.length());

输出是

yours len=49, retype=48

推荐阅读