0

我在这里按照教程:http ://www.mkyong.com/java/how-to-write-to-file-in-java-fileoutputstream-example/

并已实现以下代码作为示例:

File scoreFile = new File("score.txt");
if(!scoreFile.exists()) {
   scoreFile.createNewFile();
} 
oFile = new FileOutputStream(scoreFile, false);
oFile.write("Score = 1".getBytes());
oFile.flush();
oFile.close();

但是没有任何内容被写入文件 score.txt。

编辑:整个功能如下:

// Set win or loose to score.dat.
    public void setScore(boolean won, boolean reset){
        out.println("setScore()");
        long timePassed = (timeEnd - timeStart)/1000; // Seconds passed.
        double[] prevScore = getScore(); // get previous score (Won, Lost).
        // Create a writer to edit the file.
        File scoreFile = new File("score.txt");
        if(!scoreFile.exists()) {
            try {
                scoreFile.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } 
        if(!reset){
            if(won){
                // Add time to Win values.
                prevScore[0] += timePassed;
            }
            else{
                // Add time to Lost values.
                prevScore[1] += timePassed;
            }
            try {
                FileOutputStream oFile = new FileOutputStream(scoreFile, false);
                // Write new score.
                byte[] contentBytes = (String.valueOf(prevScore[0]+" "+prevScore[1])).getBytes();
                oFile.write("Bye".getBytes());
                oFile.flush();
                oFile.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        else{
            // If battle ended, delete the scores.
            FileOutputStream oFile;
            try {
                if(!scoreFile.exists()) {
                    scoreFile.createNewFile();
                } 
                oFile = new FileOutputStream(scoreFile, false);
                oFile.write("Error".getBytes());
                oFile.flush();
                oFile.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

我知道文件是在哪里创建的,因为我可以看到它创建了文件,但它没有用任何文本填充它。

4

2 回答 2

3

那段代码对我有用……你找对地方了吗?您可以尝试将文件名更改"C:\\score.txt"为例如,以确保您查看正确的文件夹。

于 2012-03-08T18:21:57.300 回答
1

该代码绝对有效。(假设您已声明 oFile).Score.txt 必须在您的工作目录中

于 2012-03-08T18:41:52.827 回答