我有一个程序,我需要生成一个整数,将其写入文本文件并在程序下次运行时将其读回。在一些异常行为之后,我将其剥离为设置一个整数值,将其写入文件并将其读回以进行调试。
totScore
, 设置为 25,当我在写入文件之前打印到控制台时,我看到25
. 但是,当我读取文件并打印到控制台时,我得到三个值... 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());
}
}
}