写入时发生Java IO错误,但读取时发生错误

写入时发生Java IO错误,但读取时发生错误,java,io,Java,Io,因此,问题是我试图读取打包在.jar中的配置文件,该文件工作正常,但在写入该文件时,却找不到该文件,因为它们使用的是相同的配置文件 getClass().getResource(Path); 它似乎只适用于输入流 这是我的IO类的所有代码 package com; 公共类IO{ public boolean CheckStream () { String LineRead; try { InputStream IS = getClass().getReso

因此,问题是我试图读取打包在.jar中的配置文件,该文件工作正常,但在写入该文件时,却找不到该文件,因为它们使用的是相同的配置文件

getClass().getResource(Path);
它似乎只适用于输入流

这是我的IO类的所有代码

package com;
公共类IO{

public boolean CheckStream () {
    String LineRead;

    try {

        InputStream IS = getClass().getResourceAsStream("Config.txt");

        InputStreamReader ISR = new InputStreamReader (IS,Charset.forName("UTf-8"));
        BufferedReader BR = new BufferedReader(ISR);

        if ((LineRead = BR.readLine()) != null) {
            BR.close();
            return true;
        }

        IS.close();

    } catch (IOException e) {
        e.printStackTrace();
    }

    return false;
}

public void Write (String Path, String [] ThingsToWrite) throws FileNotFoundException {
    OutputStream Out = new FileOutputStream (getClass().getResource(Path).getPath());
    PrintStream PS = new PrintStream (Out);

    for (int i = 0; i < ThingsToWrite.length; i ++) {
        PS.print(ThingsToWrite[i]);
    }

    PS.close();
}
公共布尔校验流(){
字符串行读取;
试一试{
InputStream=getClass().getResourceAsStream(“Config.txt”);
InputStreamReader ISR=新的InputStreamReader(IS,Charset.forName(“UTf-8”);
BufferedReader BR=新的BufferedReader(ISR);
如果((LineRead=BR.readLine())!=null){
BR.close();
返回true;
}
IS.close();
}捕获(IOE异常){
e、 printStackTrace();
}
返回false;
}
公共无效写入(字符串路径,字符串[]ThingsToWrite)引发FileNotFoundException{
OutputStream Out=新文件OutputStream(getClass().getResource(Path).getPath());
打印流PS=新打印流(输出);
for(int i=0;i
}


非常感谢您的帮助。

您不能只在jar文件中写入文件,它不是一般意义上的文件

虽然可以解包整个jar文件,编写新内容,然后重新打包,但最好重新设计,这样就不需要更新jar文件


例如,您可能有一个常规的本地文件,如果它存在的话,您可以使用它,但是如果不是这样的话,您可以回过头来读取jar文件。然后您只需要写入本地文件。

问题是,用户需要能够写入自定义服务器地址,以便应用程序使用。是否有其他写入方式,以便用户可以设置一次,然后将其保存并默认使用,就像其他保存方式一样,保存在jar中,这样他们就不会使用有可能很容易丢失的文件。@Hewiitt:不容易,不。请记住,如果它在jar文件中,这意味着升级到更高版本的代码也会丢失配置。最好将非默认配置排除在jar文件之外。我们不知道您的上下文,但您可能需要查看Preferences API。的可能重复项