好吧这可能与那里的几个问题非常相似,我一直在寻找,但无法解决这个问题。这是阻止我的.jar正确编译的唯一因素,所以我希望能够解决这个问题。
我有一个我需要在.jar中读取和写入的highScores.dat文件,但是我无法让输入和输出流接受路径,只有文件名,这对我没有意义。
以下是我使用的方法:
public class HighScoreManager {
private File fileName = new File("highScores.dat");
public void addScore(String playerName, int score) {
loadScoreFile();
scores.add(new Score(playerName, score));
updateScoreFile();
}
public void loadScoreFile() {
try {
inputStream = new ObjectInputStream(new FileInputStream(fileName));
scores = (ArrayList<Score>) inputStream.readObject();
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.getMessage());
} catch (IOException e) {
System.out.println("IO Error: " + e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println("Class not found: " + e.getMessage());
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} catch (IOException e) {
System.out.println("IO Error: " + e.getMessage());
}
}
}
public void updateScoreFile() {
try {
outputStream = new ObjectOutputStream(new FileOutputStream(fileName));
outputStream.writeObject(scores);
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.getMessage());
} catch (IOException e) {
System.out.println("IO Error: " + e.getMessage());
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} catch (IOException e) {
System.out.println("Update Error: " + e.getMessage());
}}}}
路径是/highScores/highScores.dat应该是正确的,因为位于/ images /中的图像与.jar中的缓冲图像一起工作
修改:将文件名更改为路径不起作用。我也试过getClass()。getResourceAsStream无济于事。