此代碼將幫助您調試和看到拋出IOException異常:
String NL = System.getProperty("line.separator");
String line;
FileInputStream in;
try {
fileName = choose.getSelectedFile().getCanonicalPath();
} catch (IOException e) {
e.printStackTrace(); //This doesn't matter, see the second IOException catch.
}
try {
in = new FileInputStream(choose.getSelectedFile());
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
StringBuffer content=new StringBuffer("");
while((line = reader.readLine()) != null){
content.append(line+NL);
}
textArea.setText(content.toString());
reader.close();
reader.readLine();
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(new JFrame(), "The file does not exist!", "Error", JOptionPane.WARNING_MESSAGE);
} catch (IOException e) {
JOptionPane.showMessageDialog(new JFrame(), "There was an error in reading the file.", "Error", JOptionPane.WARNING_MESSAGE);
}
好運。
什麼特定的情況下可能會導致這樣的事情發生?這只是我一直在使用這個函數,而且我從未真正看到過之前拋出過'IOException'。 – math4tots
如果讀者的基礎流進行編碼和讀取壞塊並pukes,如果底層流套接字流,而你正在閱讀的網絡死了,如果你試圖從一個已經關閉的流等閱讀。實際上有無數的特定實例,但它主要取決於你對'Reader.read()'和你的上下文的具體使用。在異常處理模式,它是一個通用*「的東西與流是錯誤的」 *例外的類型,顯然'閱讀()'是一個地方的東西可以去錯流。 –