本日の課題
完成したものはこちら
loadSaveData メソッドでセーブデータを読み込みます。
ファイルから行を読み込む。
不要な文字を削除して数字だけを抽出する。
数字を saveIndex に格納する。
saveIndex が 999 の場合は 0 に変更してファイルに保存する。
saveData メソッドでセーブデータを書き込みます。
指定されたインデックスをファイルに書き込む。
ソースコード
// セーブデータの読み込み
private static void loadSaveData() {
try (BufferedReader br = new BufferedReader(new FileReader(“images/save.csv”))) {
String line = br.readLine().trim();
// 不要な空白や非表示文字を削除
line = line.replaceAll(“[^\\d]”, “”);
saveIndex = Integer.parseInt(line);
// セーブデータが999の場合は0に変更
if (saveIndex == 999) {
saveIndex = 0;
saveData(0); // セーブデータを0に更新
}
} catch (IOException e) {
e.printStackTrace();
}
}
// セーブデータの書き込み
private static void saveData(int index) {
try (FileWriter fw = new FileWriter(“images/save.csv”)) {
fw.write(String.valueOf(index));
} catch (IOException e) {
e.printStackTrace();
}
}
解説
1. loadSaveData メソッド
このメソッドは、セーブデータを読み込んで saveIndex に格納する役割を持っています。
// セーブデータの読み込み
private static void loadSaveData() {
try (BufferedReader br = new BufferedReader(new FileReader(“images/save.csv”))) {
String line = br.readLine().trim();
// 不要な空白や非表示文字を削除
line = line.replaceAll(“[^\\d]”, “”);
saveIndex = Integer.parseInt(line);
// セーブデータが999の場合は0に変更
if (saveIndex == 999) {
saveIndex = 0;
saveData(0); // セーブデータを0に更新
}
} catch (IOException e) {
e.printStackTrace();
}
}
ファイルを開く
try (BufferedReader br = new BufferedReader(new FileReader(“images/save.csv”))) {
try-with-resources 構文を使用して、ファイルを安全に開きます。これにより、ファイルが自動的に閉じられます。
BufferedReader と FileReader を使って、”images/save.csv” ファイルを読み込みます。
ファイルの内容を読み込む
String line = br.readLine().trim();
br.readLine() はファイルの最初の行を読み込みます。
trim() メソッドを使って、行の前後の空白を取り除きます。
不要な文字を削除する
line = line.replaceAll(“[^\\d]”, “”);
replaceAll(“[^\\d]”, “”) を使って、数字以外のすべての文字を削除します。正規表現 [^\\d] は数字以外の文字を表します。
文字列を整数に変換
saveIndex = Integer.parseInt(line);
Integer.parseInt(line) を使って、文字列を整数に変換し、saveIndex に格納します。
セーブデータが999の場合の処理
if (saveIndex == 999) {
saveIndex = 0;
saveData(0); // セーブデータを0に更新
}
saveIndex が 999 の場合、これを 0 に変更し、saveData メソッドを呼び出してセーブデータを0に更新します。
例外処理
} catch (IOException e) {
e.printStackTrace();
}
ファイルの読み込み中にエラーが発生した場合、IOException をキャッチし、エラーメッセージを出力します。
2.saveData メソッド
このメソッドは、指定されたインデックスをセーブデータとしてファイルに書き込む役割を持っています。
// セーブデータの書き込み
private static void saveData(int index) {
try (FileWriter fw = new FileWriter(“images/save.csv”)) {
fw.write(String.valueOf(index));
} catch (IOException e) {
e.printStackTrace();
}
}
詳細解説
ファイルを開く
try (FileWriter fw = new FileWriter(“images/save.csv”)) {
try-with-resources 構文を使用して、ファイルを安全に開きます。これにより、ファイルが自動的に閉じられます。
FileWriter を使って、”images/save.csv” ファイルに書き込みます。
インデックスを書き込む
fw.write(String.valueOf(index));
String.valueOf(index) を使って、インデックスを文字列に変換し、ファイルに書き込みます。
例外処理
} catch (IOException e) {
e.printStackTrace();
}
ファイルの書き込み中にエラーが発生した場合、IOException をキャッチし、エラーメッセージを出力します。
<目次に戻る>
スポンサーリンク
コメント