当前位置: 代码迷 >> J2SE >> java如何向文件中写入int类型的数据
  详细解决方案

java如何向文件中写入int类型的数据

热度:26   发布时间:2016-04-23 20:08:11.0
java怎么向文件中写入int类型的数据?
(1)产生5000个1-9999之间的随机整数,将其存入文本文件a.txt中
(2)从文件中读取这5000个整数,并计算其最大值、最小值和平均值
  本人用的流失字节流,向文本文件a.txt中写入了产生的随机数,并向其中读入了刚才写入的随机数,但是写进去和读出来的数,貌似不是产生的那些随机数。
import java.io.*;
//(1)产生5000个1-9999之间的随机整数,将其存入文本文件a.txt中
//(2)从文件中读取这5000个整数,并计算其最大值、最小值和平均值

class Ex2 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("a.txt");
FileInputStream fis = new FileInputStream("a.txt");

for(int i = 1; i <= 500; i++) {
int number = (int)(Math.random() * 10000);
System.out.println(number);
fos.write(number);
}

int b = 0;
int max = -1;
int min = 10000;
long sum = 0;
while((b = fis.read()) != -1) {
System.out.println(b);
sum += b;
if(max < b) {
max = b;
}

if(min > b) {
min = b;
}
}

System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
System.out.println("平均值:" + sum/5000);

fis.close();
fos.flush();
fos.close();
}
}


输出是:
最大值:254
最小值:0
平均值:12
而我们知道,计算机产生的随机数应该是均衡的,最少平均数应该是5000左右才对呀!


------解决思路----------------------
最适合用DataInputStream和DataOutputStream。不必担心数据格式问题。
------解决思路----------------------
FileOutputStream的write(int)方法一次只能写入一个字节,所以只能写入你传入的int的低字节。
1楼已经回答了你的问题了。用DataInputStream和DataOutputStream即可。
------解决思路----------------------
FileOutputStream的write(int)方法,转成字符串写入
------解决思路----------------------
一般都是首选 DataInputStream / DataOutputStream   读/写 基本数据类型
DataInputStream in = new DataInputStream (fis);  
  相关解决方案