Java FileOutputStream写不起作用

时间:2012-03-08 18:19:29

标签: java fileoutputstream

我按照教程: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();
            }
        }
    }

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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