整数を生成し、それをテキスト ファイルに書き込んで、次にプログラムを実行するときに読み戻す必要があるプログラムがあります。いくつかの異常な動作の後、整数値を設定するようにそれを取り除き、ファイルに書き込み、デバッグのために読み戻しました。
totScore
が 25 に設定されており、ファイルに書き込む前にコンソールに出力すると、値が25
. ただし、ファイルを読み取ってコンソールに出力すると、 、 、 の 3 つの値が得25
られ13
ます10
。メモ帳でテキスト ファイルを表示すると、キーボードにない文字が表示されるので、ファイルがint
.
書き込みステップと読み取りステップで異なる結果が得られるのはなぜですか?
として書かれていませんint
か?これらの値はどのようにファイルに保存されていますか? 読み取った値を別のものとしてキャストし、整数に変換する必要がありますか?
検討:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.nio.file.*;
import java.nio.file.StandardOpenOption.*;
//
public class HedgeScore {
public static void main(String[] args) {
int totScore = 25;
OutputStream outStream = null; ///write
try {
System.out.println("totscore="+totScore);
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("hedgescore.txt")));
bw.write(totScore);
bw.write(System.getProperty("line.separator"));
bw.flush();
bw.close();
}
catch(IOException f) {
System.out.println(f.getMessage());
}
try {
InputStream input = new FileInputStream("hedgescore.txt");
int data = input.read();
while(data != -1) {
System.out.println("data being read from file :"+ data);
data = input.read();
int prevScore = data;
}
input.close();
}
catch(IOException f) {
System.out.println(f.getMessage());
}
}
}