次のようにクラス変数を作成しました
private boolean xyz = false;
その後、いくつかのことを行い、ブール変数の値を に変更するメソッドを呼び出していますtrue
。
次にコードを再実行すると、ブール値は true のままではなく、false に戻ります。
プログラムを閉じて後でもう一度実行しても、そのままにしておきたいです。
プログラムを閉じて後でもう一度実行しても、そのままにしておきたいです。
つまり、どこかに永続化する必要があります。
オプションは次のとおりです。
Preferences
APIによるユーザー設定基本的に、データをどこかに書き出し、起動時に読み戻す必要があります。これ以上の文脈がなければ、これ以上具体的なアドバイスをすることは困難です。
プログラムを終了するときは、以下を使用して、変数を自分の場所、できればプログラムのローカル ディレクトリにあるファイルに保存します。これをシリアル化と呼びます。
try
{
FileOutputStream fileOut = new FileOutputStream("xyz.ser");//this saves to the directory where your program runs in
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(xyz);
out.close();
fileOut.close();
}catch(IOException i)
{
i.printStackTrace();
}
次に、プログラムを起動すると、以下のコードで読み返すことができます。これを逆シリアル化と呼びます。
try
{
FileInputStream fileIn = new FileInputStream("xyz.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
xyz = (boolean) in.readObject();
in.close();
fileIn.close();
}catch(IOException i)
{// you are here if xyz.ser does not exist
i.printStackTrace();
return;
}
また、ファイルが以前に作成されたかどうかを確認することもできます。それ以外の場合は、IOException がキャッチされます。ファイル名が xyz.ser の File オブジェクトを作成し、exists() を呼び出すことで実行できます。