2016-09-09 9 views
1

大きなJSONを書き込むJavaプログラムがあるとします。 JSONが破損しているかどうかを判断するために、次回の起動時にプログラムが予期せず終了するかどうかを判断する方法はありますか?Java:書き込み中に予期せぬ終了が発生する

+0

プログラムが正常に完了した場合にエントリを追加できるログファイルを作成できます。 – Beethoven

答えて

0

あなたのプロセスが完了した後、ファイルの名前を変更します。

try 
{ 
    File outputFile = ...; 
    someLongRunningProcess(outputFile); 
    File successfulFile = ... 
    outputFile.renameTo(successfulFile); 
} 
catch (Exception ex) 
{ 
    ... 
} 

あなたが再起動すると、あなたの前回の実行が成功しなかった、successfulFileを持っていない場合。

ただ1つのファイルシステム内で操作を続けるだけで、暗黙のコピーではなく、ほとんど瞬間的な単純な操作になります。

+0

ありがとう!何らかの理由でファイルの名前を変更してしまった。 – iluvAS

0

あなたは、より明確に説明できますか? JVMが終了した後に再度起動することを意味しますか?それがあなたが意味するものなら、そのためのファイルベースのフラグが必要です。

String expectedFlag="Good Exit"; 

void afterExit(){ 
     //always overwrite whatever is in this file 
     //write flag value to a txt file 
} 

boolean beforeStarting(){ 
     String flagText = readFromFlagFile(); 
     if(expectedFlag.equals(flagText)){ 

      return true; 

     } 

     return false; 
} 
+0

はい、これは私が行っている問題と解決策です。しかし、私はこれをどのように実装しますか? – iluvAS

関連する問題