产生随机数,IO流写入文件

(1)产生5000个1-9999之间的随机整数,将其存入文本文件a.txt中
(2)从文件中读取这5000个整数,并计算其最大值、最小值和平均值

  本人用的流失字节流,向文本文件a.txt中写入了产生的随机数,并向其中读入了刚才写入的随机数,但是写进去和读出来的数,貌似不是产生的那些随机数。




将下列代码中的IO流换成    FileOutputStream的write(int)方法一次只能写入一个字节,所以只能写入你传入的int的低字节。
用DataInputStream和DataOutputStream即可,不必担心数据格式问题。




Java code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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左右才对呀!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值