我正在尝试打开保存在JAR中的.txt文件,并在JTextArea中显示其内容。以下是我尝试使用的代码;
URL urlToDictionary = this.getClass().getResource("eula/" + "eula.txt");
try {
InputStream stream = urlToDictionary.openStream();
gettysburgTextStrBlder = stream;
System.out.println(stream);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
我知道我在正确的文件位置,因为我已经更改了.getResource路径并看到了空点异常,我没有使用当前文件路径。
System.out在运行时打印以下内容:
java.io.BufferedInputStream@3af42ad0
我也试过了;
gettysburgTextStrBlder = String.valueOf(stream);
但我得到的结果是一样的。
我想我差不多了,但我不确定如何获取.txt文件的实际内容,而不仅仅是缓冲流。
感谢。
安迪
答案 0 :(得分:3)
您必须阅读输入流中的内容,并使用BufferedReader
URL urlToDictionary = this.getClass().getResource("eula/" + "eula.txt");
try {
InputStream stream = urlToDictionary.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
String line = null;
StringBuffer lineContent = new StringBuffer();
while((line = br.readLine()) != null){
lineContent.append(line).append("\n");
}
br.close().
System.out.println(lineContent.toString());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}