java.io.FileNotFoundException: "C:/Users/Joe/Desktop/file.txt" (文件名、目录名或卷标语法不正确)



我有这个代码:

BufferedReader in = new BufferedReader
(new InputStreamReader(System.in));
System.out.print("Public Key to encrypt with: ");
String publicKeyFilename = in.readLine();
FileInputStream fis = new FileInputStream(publicKeyFilename);

当我输入文件"C:\Users/Joe/Desktop/file.txt"的目的地时,结果是这个错误:

java.io.FileNotFoundException:"C:\Users/Joe/Desktop/file.txt"(文件名、目录名或卷标语法不正确)

但是文件存在,我该怎么办?

谢谢你。

当我输入文件的目的地时"C:\Users/Joe/Desktop/file.txt"

文件名应不带引号(")

编辑:我注意到您在文件名中使用了斜杠。如果你在windows上,你想使用反斜杠()

如果您100%确定该文件存在于特定位置,那么它是两件事之一。此外,请尝试转义文件名中的/

如果处理不正确,Java将抛出此异常。在导入java.io.FileNotFoundException后,将您的语句包围在try ... catch()块中,或放入throws FileNotFoundException,如下所示:

import java.io.FileNotFoundException;
try{
    BufferedReader in = new BufferedReader
    (new InputStreamReader(System.in));
    System.out.print("Public Key to encrypt with: ");
    String publicKeyFilename = in.readLine();
    FileInputStream fis = new FileInputStream(publicKeyFilename);
}catch(FileNotFoundException e){
    System.out.println("File does not exist");
}

import java.io.FileNotFoundException;
void encrypt throws FileNotFoundException(){
    BufferedReader in = new BufferedReader
    (new InputStreamReader(System.in));
    System.out.print("Public Key to encrypt with: ");
    String publicKeyFilename = in.readLine();
    FileInputStream fis = new FileInputStream(publicKeyFilename);
}

另外,另一个原因是文件受到保护。将文件设置为只读,或者读写(如果您希望两者都能做到的话)。

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Public Key to encrypt with: ");
String publicKeyFilename = in.readLine();
try
    { 
        FileInputStream fis = new FileInputStream(publicKeyFilename); 
    } 
catch(Exception e)
    {
        System.out.println("File error !!!"); 
    }  

最新更新