所以我正在尝试使用GUI java,每当我尝试在终端中运行我的代码时这个代码都能正常工作,但是我需要创建一个可以从任何目录加载文本文件的jar文件(遗憾的是这个代码只有适用于文件 在我的主目录中,如果我尝试访问不同文件夹中的文件,则返回文件异常)真的很感激响应。我不知道如果这很重要,但我正在实现一个可序列化的界面。
public boolean loadCanvas(String filename){
boolean done = true;
try{
File file = new File(filename);
FileInputStream fp = new FileInputStream(file.getAbsolutePath());
ObjectInputStream i = new ObjectInputStream(fp);
obj = (A) i.readObject();
i.close();
}
catch(Exception eRef){
done = false;
}
return done;
}
答案 0 :(得分:1)
您根本不必致电getAbsolutePath()
。 String变量文件名应包含您尝试访问的完整路径。您可以使用File对象或仅使用String,文件名(例如new FileInputStream(file)
或new FileInputStream(filename)
)来实例化FileInputStream。话虽如此,听起来你的问题是你的文件名变量中指定了一个不正确的文件路径,或者你遇到了权限限制。
答案 1 :(得分:0)
您可以尝试使用ClassLoader.getResourceAsStream()加载文件。也, 您是否检查了您尝试在主目录外访问的文件的权限?