我用FileOutputStream 读 怎么读出来的数都只有三位数import java.io.*;
public class FileOutputStreamTest {
public static void main(String args[]) throws IOException {
PrintWriter fs = new PrintWriter(new FileOutputStream ("A.txt"));
int b ;
for(int i=0; i<10; i++) {
b = (int)(Math.random()*100000);
System.out.println(b);
fs.write(b);
}
fs.close();
FileInputStream fi = new FileInputStream("A.txt");
for(int i=0; i<10; i++) {
int t = fi.read();
System.out.println(t);
}
}
}
public class FileOutputStreamTest {
public static void main(String args[]) throws IOException {
PrintWriter fs = new PrintWriter(new FileOutputStream ("A.txt"));
int b ;
for(int i=0; i<10; i++) {
b = (int)(Math.random()*100000);
System.out.println(b);
fs.write(b);
}
fs.close();
FileInputStream fi = new FileInputStream("A.txt");
for(int i=0; i<10; i++) {
int t = fi.read();
System.out.println(t);
}
}
}
int b ;
for(int i=0; i<10; i++) {
b = (int)(Math.random()*100000);
System.out.println(b);
fs.write(String.valueOf(b)+"\n");
}
fs.close();
FileReader fi = new FileReader("A.txt");
for(int i=0; i<10; i++) {
int t = -1;
int j = 0;
while((t=fi.read())!=0XA){
j = j*10 + (t - '0');
}
System.out.println(j);
}
PrintWriter的write(int c)方法并不能写入一个真正的整数,这是造成你的问题的根源。这里的c指的是字符对应的ascii码,当你写入一个超过ascii码所能表示的范围时,它能完全写进去吗?FileInputStream的read方法也是只读取一个字节,这是你读取的数为什么只显示三位的原因。
你可以把要写进去的整数转换为字符串,再写入。但是这样的话这些数字都是连续的,你就不能区分出每个数之间分界,从而也就没法区分出每一个数,1楼的方法就是直接在每个数之间加入回车来解决每个整数之间的分割问题。
如果你想直接写一个整数和读取一个整数,使用2楼火龙果的方法,但是这种方法写入的文件打开的话是乱码。