Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 导出到jar的FileInputStream路径_Java_Jar_Inputstream_Filepath_Executable Jar - Fatal编程技术网

Java 导出到jar的FileInputStream路径

Java 导出到jar的FileInputStream路径,java,jar,inputstream,filepath,executable-jar,Java,Jar,Inputstream,Filepath,Executable Jar,我正在尝试将我的项目导出到.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)); }

我正在尝试将我的项目导出到.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的文本一起工作?

也许您正在寻找

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/myprogram/text/start.txt在另一台电脑上,路径是/Users/username2/Test/myprogram/text/start.txt……要导出到jar,我当然不能硬编码路径到我的程序中,但我该怎么做?你需要做
mypath
a从某处获取的变量,例如命令行、系统属性、用户输入。如何做到这一点取决于您的应用程序的工作方式。如果
start.txt
是只读应用程序资源,则应将其包含在Jar中并通过URL访问。
  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));
    }