【问题标题】:FileInputStream path for exporting to jar用于导出到 jar 的 FileInputStream 路径
【发布时间】:2012-08-25 00:41:06
【问题描述】:

我正在尝试将我的项目导出到 .jar 或 .exe。这适用于外部文本文件。

这是我的代码:

    InputStream  is = new FileInputStream("MYPATH/start.txt");
    Reader r = new InputStreamReader(is);

  while ((my_char = r.read()) != -1) {
    text_list.add(String.valueOf((char) my_char));
  } 

如何设置“MYPATH”以便我的 jar 文件与其他 PC 的文本一起使用?

【问题讨论】:

  • 如果start.txt是一个只读的应用程序资源,它应该包含在Jar中并通过URL访问。

标签: java jar inputstream filepath executable-jar


【解决方案1】:
  URL res = getClass().getClassLoader().getResource("Interface/Text/start.txt");
  InputStream is = res.openStream();
   r = new InputStreamReader(is);             
   while ((my_char = r.read()) != -1) {
        text_list.add(String.valueOf((char) my_char));
    }

这就是我的解决方案。

【讨论】:

    【解决方案2】:

    也许你正在寻找

    FileReader r = new FileReader(mypath + "/start.txt");
    // or
    FileReader r = new FileReader(new File(mypath, "start.txt"));
    

    我不会尝试将所有字节的列表创建为字符串。通常一次读一行更有用。

    BufferedReader br = new BufferedReader(new FileReader(new File(mypath, "start.txt")));
    for(String line; (line = br.readLine()) != null; ) {
        // process line
    }
    

    【讨论】:

    • 我需要这个列表来存放其他东西......但这不是东西......问题是:例如在我的电脑上,我的路径是:/Users/username/Desktop/java/myProgramm/另一台电脑上的 text/start.txt 路径是 /Users/username2/Test/myProgramm/text/start.txt ...对于导出到 jar 当然我不能硬编码到我的程序中的路径但是我该怎么做?
    • 您需要将mypath 设为您从某处获得的变量,例如命令行、系统属性、用户输入。如何做到这一点取决于您,并且取决于您的应用程序的工作方式。
    猜你喜欢
    • 2015-09-14
    • 2013-01-11
    • 2023-03-09
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    相关资源
    最近更新 更多