使用JAR打开文本文件而不提取它 - 请帮助

时间:2013-03-23 10:11:21

标签: java inputstream

我正在尝试打开保存在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文件的实际内容,而不仅仅是缓冲流。

感谢。

安迪

1 个答案:

答案 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();
}