![](/img/trans.png)
[英]Using BufferedReader to call same file in 2 separate classes gives FileNotFoundException (Access is denied)
[英]FileNotFoundException when using BufferedReader on a file
我對讓基本的文件讀取與 Java 一起工作感到非常困惑。 許多混合信號。
我已經嘗試了幾種不同的方法,並且每次都始終遇到未找到的異常。 我檢查了一個文件對象設置為當前路徑以打印當前目錄,我確實在我試圖打開的文件所在的目錄中。權限設置為每個人都可以閱讀。 我不確定發生了什么:
BufferedReader infixLines = new BufferedReader ( new FileReader ( "input.infix" ));
這是引發錯誤的行,因此使用 infixLines 的每個連續行也會引發錯誤。
我也嘗試過使用 FileInputStream 並得到相同類型的錯誤。
這就是說簡單地做
File file = new File("input.infix");
if ( file.exists() )
System.out.println( "Exists" );
確實有效。
很困惑。
編輯:(堆棧跟蹤?)
ParseInfix.java:13: unreported exception java.io.FileNotFoundException; must be
BufferedReader infixLines = new BufferedReader(new FileReader (n
^
ParseInfix.java:15: unreported exception java.io.IOException; must be caught or
while ( ( line = infixLines.readLine()) != null )
異常跟蹤是說您的代碼...
BufferedReader infixLines = new BufferedReader ( new FileReader ( "input.infix" ));
如果文件不存在,可能會拋出FileNotFoundException
或IOException
,因此它希望您做一些事情來處理這種可能性。
最簡單的方法是將文件讀取代碼包裝在像這樣的try-catch
塊中......
try {
BufferedReader infixLines = new BufferedReader ( new FileReader ( "input.infix" ));
// other reading code here
}
catch (FileNotFoundException e){
System.out.println(e);
}
catch (IOException e){
System.out.println(e);
}
例外並不是說找不到文件,只是說如果文件不存在,您的代碼將如何處理這種情況。
最終,在catch
塊中,您想要做的不僅僅是System.out.println()
。 例如,在 GUI 程序中,您可能會顯示一條彈出消息,告訴用戶該文件不存在。
這條線
BufferedReader infixLines = new BufferedReader (new FileReader("input.infix"));
搜索 File: input.infix
,如果沒有找到則返回FileNotFoundException
異常。 確保input.infix
位於與java file
相同的目錄中。
它是一個編譯錯誤,而不是運行時異常。
您需要將與 File 相關的調用包裝在 try-catch 塊中並處理FileNotFounceException
和IOException
試試這個
String fileName = "input.infix";
File fil = new File(fileName);
String filePath = fil.getAbsolutePath();
BufferedReader infixLines = new BufferedReader(new FileReader(filePath));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.