谢谢你解决我的第一个问题,我现在收到一个新的错误
import java.io.*;
import javax.swing.*;
public class FileBrowser {
public static void main(String[] args) throws IOException {
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File file = chooser.getSelectedFile();
String filename = file.getName();
System.out.println("You have selected: " + filename);
FileReader fr = new FileReader("filename");
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine()) != null) {
System.out.println(s);
}
fr.close();
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
java.io.FileNotFoundException: filename (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:97)
at java.io.FileReader.<init>(FileReader.java:58)
at FileBrowser.main(FileBrowser.java:13)
Run Code Online (Sandbox Code Playgroud)
是从文件浏览器中没有正确获取文件名的错误?
Java中有检查和未检查的异常.必须声明您的方法抛出的已检查异常.该FileReader构造函数可以抛出一个FileNotFoundException是经过检查的异常.代码中的一些其他方法调用也可以抛出已检查的异常.
如果您调用一个可以抛出已检查异常的方法,那么您需要捕获异常并处理它或声明您的方法抛出此异常.即使您认为永远不会抛出异常,您也必须执行其中一项操作.不这样做是编译错误.
添加一个throws:
public static void main(String[] args) throws IOException {
Run Code Online (Sandbox Code Playgroud)
或使用try/catch块包围代码:
try {
// ...
} catch (IOException e) {
e.printStackTrace();
// Or ask the user for a different filename...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13797 次 |
| 最近记录: |