use*_*162 5 inputstream file filestream
我有这个代码:
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);
Run Code Online (Sandbox Code Playgroud)
当我输入文件“ C:/Users/Joe/Desktop/file.txt”的目标时,结果是此错误:
java.io.FileNotFoundException:“ C:/Users/Joe/Desktop/file.txt”(文件名,目录名称或卷标签语法不正确)
但是文件存在,那我该怎么办?
感谢你..
编辑:我注意到您在文件名中使用了正斜杠。如果您在 Windows 上,则需要使用反斜杠 ()
如果您 100% 确定该文件存在于特定位置,那么它是以下两种情况之一。另外,尝试转义/
文件名中的 s
Java如果没有正确处理就会抛出这个异常。将您的语句放在一个try ... catch()
块中,或者throws FileNotFoundException
在 import 后放置java.io.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");
}
Run Code Online (Sandbox Code Playgroud)
或者
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);
}
Run Code Online (Sandbox Code Playgroud)
另外,另一个原因是文件受到保护。将文件设置为只读,或者如果您希望能够同时执行这两种操作,则将文件设置为读取和写入。