我是Java的新手,我在GUI內(nèi)創(chuàng)建了一個小表,我想從中打開一個.txt文件,以便用文件的內(nèi)容填充該表。我試圖從老師的例子中復(fù)制代碼,但到目前為止,我還沒有設(shè)法“捕獲異常”。這是我的代碼: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 回答

MMTTMM
TA貢獻1869條經(jīng)驗 獲得超4個贊
好吧,根據(jù)您的情況,您可以從以下內(nèi)容中獲取IO異常,以及更多。
您正在閱讀的.txt文件不可用。
某些進程關(guān)閉了您使用緩沖讀取器讀取數(shù)據(jù)的輸入流。
如果您嘗試讀取沒有權(quán)限的.txt文件。
等等。此外,如果您嘗試從不受支持的文件格式中讀取內(nèi)容,則將獲得和異常。因此對于
我有沒有機會得到我正在使用的代碼的異常?
為此,答案是肯定的。您正在使用的代碼可能會出現(xiàn)異常。如果在運行時發(fā)生以上情況之一,您將得到一個異常。它們將由捕獲塊處理。
這與問題無關(guān),但您可能需要更改BuddyFileManager構(gòu)造函數(shù)代碼以避免歧義。(在這種情況下,變量文件名存在歧義)
public BuddyFileManager(String filename) { this.fileName = filename; }
此關(guān)鍵字通過this.filename
在BuddyFileManager類中定義引用文件名屬性來清楚地解決此歧義。
添加回答
舉報
0/150
提交
取消