我想将数字写入文件。程序运行时没有任何错误,但是当我打开我写的文件时,文件的内容就像“!”#$%&'()* +, - 。/ 0123456789:;< => @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _`ABCDEFGHIJKLMNOPQRSTUVWXYZ {|}〜€,ƒ“...†‡‰š
我通过使用FileInputStream读取文件内容并打印内容进行交叉检查。 IDE打印所需的输出,但文件中的整数不以可读形式存储。 谁能告诉我为什么整数没有按预期填充在文件中?
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
try{
FileOutputStream fos = new FileOutputStream("Exercise_19.txt");
for(int i = 0;i<=200; i++){
fos.write((int)i);
}
fos.close();
}
catch(IOException ex){
ex.printStackTrace();
}
}
答案 0 :(得分:3)
你为什么要在文件中获取数据,我不确定,但是FileOutputStream
用于编写原始字节数据而不是人类可读文本。尝试使用FileWriter代替。
答案 1 :(得分:2)
fos.write(int)使用整数的最低8位写入一个字节。
如果你想将文本写入文件,更简单的选择是使用PrintWriter(注意PrintWriter可以使用FileOutputStream,因此可以完成,但你真的必须知道你在做什么。)
public static void main(String... args) throws FileNotFoundException {
PrintWriter pw = new PrintWriter("Exercise_19.txt");
for (int i = 0; i <= 200; i++)
pw.println(i);
pw.close();
}
答案 2 :(得分:1)