我想從我的.jar文件的根目錄加載文本文件。我試過這樣的:getResourceAsStream返回InputStream,但掃描器無法讀取
InputStream is = getClass().getResourceAsStream("/infobook.txt");
Scanner scan = new Scanner(is);
ArrayList<String> strings = new ArrayList<String>();
while(scan.hasNextLine())
{
strings.add(scan.nextLine());
}
我沒有得到任何運行時異常,但是,沒有行被添加到ArrayList。然後我嘗試了一些像System.out.println(scan.nextLine());
,我得到了一個java.util.NoSuchElementException: No line found
例外。 現在我很困難,需要你的幫助。該文本文件有21行文字。 我將如何去從罐子里加載這個文本文件?
[編輯] 我也試着閱讀這樣的輸入流:
InputStream is = getClass().getResourceAsStream("/infobook.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
System.out.println(br.readLine());
給予以下錯誤:java.util.zip.ZipException: invalid stored block lengths
您是否試過直接從'is'讀取某些東西,而沒有'scan'? – tcb
我剛剛試過這個:http://pastebin.com/KaQzHGLs並得到這個錯誤:'java.util.zip.ZipException:無效的存儲塊長度'。我希望這是你的意思,「直接」 – Nik
謝謝大家回答我的問題,讓我更接近答案。我剛剛更新了我的Java,現在相同的代碼完美地工作。我不知道爲什麼:O – Nik