我正在尝试从文本文件中读取一行,但程序仍然返回一个错误,指出无法找到该文件的名称。关于如何解决问题的任何想法。
源代码:
import java.io.FileReader;
import java.io.BufferedReader;
public class Cipher {
public String file_name;
public Cipher(){
file_name = "/Users/SubrataMohanty/IdeaProjects/CaesarCipher/src/cipher_text.txt";
}
public static void main(String[] args) {
BufferedReader br = null;
FileReader fr = null;
Cipher cipher_1 = new Cipher();
fr = new FileReader(cipher_1.file_name);
br = new BufferedReader(fr);
String current_line;
while ((current_line = br.readLine()) != null){
System.out.println(current_line);
}
}
}
经过调试,这就是我得到的,
Error:(25, 14) java: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
Error:(30, 43) java: unreported exception java.io.IOException; must be caught or declared to be thrown
以上两行是:
答案 0 :(得分:5)
您遇到这些错误,因为您调用的方法和构造函数会抛出异常。这些要么需要用try / catch块捕获,要么在方法签名中声明。
这些错误是编译时错误,而非运行时错误。它并不是说文件不存在,而是你需要捕获异常以防万一。
答案 1 :(得分:0)
请输入驱动器的完整路径以及文件夹位置。
C:\....\Users/SubrataMohanty/IdeaProjects/CaesarCipher/src/cipher_text.txt
喜欢这个。它应该像在资源管理器中复制粘贴一样,您可以直接跳转到该文件。
如果使用MAC,请右键单击文本文件和属性,然后复制该位置并将其粘贴到您的代码中。
答案 2 :(得分:0)
在您的代码中,下面的行需要捕获
$_GET['id']
使用try-catch块或抛出异常来处理它。
答案 3 :(得分:0)
print(val['name'])
'test1'
'test2'
您需要处理读者生成的异常
答案 4 :(得分:0)
您的文件路径应包含整个路径,例如:
"C:\\Users\\John Doe\\Desktop\\Impactor_0.9.41.txt"
注意我使用了额外的'\',但我不确定这是否重要,但我总是这样做。
另外为了清楚起见,你也可以改变你的br和fr,不过你所做的也很好。但重要的是在try-catch块中打开文件,如下所示:
try{
br = new BufferedReader(new FileReader(cipher1.file_name));
} catch(FileNotFoundException e){
e.printStackTrace();
}
当读取文件并将其打印到控制台时,请将其放入try catch:
try{
String current_line;
while((current_line = br.readLine()) != null){
System.out.println(current_line);
current_line = br.readLine();
}
} catch(IOException e){
e.printStackTrace();
}