我是Java的新手,我在GUI内创建了一个小表,我想从中打开一个.txt文件,以便用文件的内容填充该表。我试图从老师的例子中复制代码,但到目前为止,我还没有设法“捕获异常”。这是我的代码:buddyLoadFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(HauptFenster.this, "Open File", FileDialog.LOAD); fd.setDirectory("."); fd.setVisible(true); try { String filename = fd.getDirectory() + fd.getFile(); buddyFileManager = new BuddyFileManager(filename); buddyTableModel.setBuddies(buddyFileManager.load()); buddyTableModel.fireTableDataChanged(); } catch (IOException ex) { JOptionPane.showMessageDialog( HauptFenster.this, "error loading file", "Error", JOptionPane.ERROR_MESSAGE); } catch (Exception ex) { JOptionPane.showMessageDialog( HauptFenster.this, "invalid format of file.", "Error", JOptionPane.ERROR_MESSAGE); } } });不管我打开哪种文件,程序都会使用打开的文件中的字符串成功填充表格。我有没有机会得到我正在使用的代码的异常?这是我的FileManager(以备不时之需):public BuddyFileManager(String filename) { fileName = filename; } public List<Buddies> load() throws IOException { BufferedReader br = new BufferedReader(new FileReader(fileName)); StreamTokenizer strTokenizer = new StreamTokenizer(br); strTokenizer.whitespaceChars(',', ','); List<Buddies> buddyListe = new ArrayList<Buddies>();非常感谢你。
1 回答
![?](http://img1.sycdn.imooc.com/54584ed2000152a202200220-100-100.jpg)
MMTTMM
TA贡献1869条经验 获得超4个赞
好吧,根据您的情况,您可以从以下内容中获取IO异常,以及更多。
您正在阅读的.txt文件不可用。
某些进程关闭了您使用缓冲读取器读取数据的输入流。
如果您尝试读取没有权限的.txt文件。
等等。此外,如果您尝试从不受支持的文件格式中读取内容,则将获得和异常。因此对于
我有没有机会得到我正在使用的代码的异常?
为此,答案是肯定的。您正在使用的代码可能会出现异常。如果在运行时发生以上情况之一,您将得到一个异常。它们将由捕获块处理。
这与问题无关,但您可能需要更改BuddyFileManager构造函数代码以避免歧义。(在这种情况下,变量文件名存在歧义)
public BuddyFileManager(String filename) { this.fileName = filename; }
此关键字通过this.filename
在BuddyFileManager类中定义引用文件名属性来清楚地解决此歧义。
添加回答
举报
0/150
提交
取消