(1)产生5000个1-9999之间的随机整数,将其存入文本文件a.txt中
(2)从文件中读取这5000个整数,并计算其最大值、最小值和平均值
输出是:
最大值:254
最小值:0
平均值:12
(2)从文件中读取这5000个整数,并计算其最大值、最小值和平均值
本人用的流失字节流,向文本文件a.txt中写入了产生的随机数,并向其中读入了刚才写入的随机数,但是写进去和读出来的数,貌似不是产生的那些随机数。
将下列代码中的IO流换成 FileOutputStream的write(int)方法一次只能写入一个字节,所以只能写入你传入的int的低字节。
用DataInputStream和DataOutputStream即可,不必担心数据格式问题。
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左右才对呀!