我想从我的.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