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