我有这个代码:
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"
文件名应不带引号(")
如果您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 !!!");
}