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 に答える