【问题标题】:Accessing .txt file inside my java application and showing it to the user directly在我的 java 应用程序中访问 .txt 文件并直接向用户显示
【发布时间】:2013-11-17 22:58:39
【问题描述】:

有什么方法可以显示用户,.txt 文件的内容直接存储在我的 jar 应用程序包 (org/something/something.txt) 中,而不将其存储在用户 pc 或任何临时文件上。文件?我想直接访问它。 我应该将其作为资源访问吗?还是作为普通文件访问?

【问题讨论】:

    标签: java file resources embedded-resource


    【解决方案1】:

    如果文件在 src/org/something/something.txt 中

    你可以这样称呼它

    public static void main(String[] args) {
    
    
            InputStream inputStream = null;
        BufferedReader br = null;
    
        try {
                    inputStream = AClassYouAreRunningThisFrom.class.getClassLoader().getResourceAsStream("org/something/something.txt");   
            br = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder sb = new StringBuilder(); 
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line+"\n");
            }
            System.out.println(sb.toString());
    
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        }
    

    【讨论】:

      【解决方案2】:

      您需要使用getResourceAsStream()方法获取InputStream
      然后,您可以使用BufferedReader阅读文本

      InputStream inputStream = 
              getClass().getClassLoader().getResourceAsStream("file.txt");
      BufferedReader buf = new BufferedReader(new InputStreamReader(inputStream));
      String line = "";
      
      while((line = buf.readLine()) != null){
          // something 
      }  
      

      我应该将它作为资源访问吗?还是作为普通文件访问?

      据我所知,视情况而定。如果您根本不希望文件更改,请将其嵌入到 jar 中。否则,将其作为普通文件保存在磁盘上。

      请阅读:Java resource as file

      【讨论】:

      • 感谢您的回答和信息。工作得很好:)
      【解决方案3】:

      不,不要将文件作为资源检索。这将有效地防止你用它做任何其他事情。内容没有正确加载,这太说明问题了。

      【讨论】:

        【解决方案4】:

        是的,您可以将 .txt 文件存储在 .jar 文件中。

        编辑:达里奥的回答。

        【讨论】:

          【解决方案5】:

          使用类似的东西

          InputStream inputStream = 
                  getClass().getClassLoader().getResourceAsStream("file.txt");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-14
            • 1970-01-01
            • 2017-08-26
            • 1970-01-01
            相关资源
            最近更新 更多