如何在Jar文件中读/写.dat文件?

时间:2015-04-30 17:43:46

标签: java

好吧这可能与那里的几个问题非常相似,我一直在寻找,但无法解决这个问题。这是阻止我的.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无济于事。

0 个答案:

没有答案