生成一个14亿的0-150岁然的年龄文件,文件内每行都只存0-150的年龄,使用数组读取文件中各个年龄的人数并打印
生成测试文件:
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Random;
public class MakeAgeTxt {
/**
* 随机生成14亿个0-150岁的年龄,每行只保存一个年龄
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E://age.txt")));
Random random = new Random();
for (int i = 0; i < 1400000000; i++){
bw.write(random.nextInt(150) + "\r\n");
}
bw.flush();
bw.close();
}
}
读取代码:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
public class ReadAgeTimes {
/**
* 使用数组下表作为年龄,读取到一个年龄则该下标的值加1
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("E://age.txt")));
int age[] = new int[150];
String ageStr;
while ((ageStr = br.readLine()) != null){
age[Integer.parseInt(ageStr)]++;
}
br.close();
for(int i = 0; i < age.length; i++){
System.out.println("年龄为:" + i + ",人数为:" + age[i]);
}
}
}
打印结果:
年龄为:0,人数为:9331305
年龄为:1,人数为:9332868
年龄为:2,人数为:9333855
年龄为:3,人数为:9334187
年龄为:4,人数为:9333886
年龄为:5,人数为:9331970
年龄为:6,人数为:9333514
年龄为:7,人数为:9330400
年龄为:8,人数为:9335656
年龄为:9,人数为:9335581
年龄为:10,人数为:9332368
年龄为:11,人数为:9333065
年龄为:12,人数为:9331055
年龄为:13,人数为:9332841
年龄为:14,人数为:9335087
年龄为:15,人数为:9333545
年龄为:16,人数为:9340321
年龄为:17,人数为:9330251
年龄为:18,人数为:9327624
年龄为:19,人数为:9338115
年龄为:20,人数为:9334259
年龄为:21,人数为:9328665
年龄为:22,人数为:9329061
年龄为:23,人数为:9337157
年龄为:24,人数为:9335265
年龄为:25,人数为:9333241
年龄为:26,人数为:9333098
年龄为:27,人数为:9329961
年龄为:28,人数为:9334577
年龄为:29,人数为:9331319
年龄为:30,人数为:9332546
年龄为:31,人数为:9332997
年龄为:32,人数为:9337964
年龄为:33,人数为:9334142
年龄为:34,人数为:9340957
年龄为:35,人数为:9330137
年龄为:36,人数为:9325355
年龄为:37,人数为:9331537
年龄为:38,人数为:9332344
年龄为:39,人数为:9330843
年龄为:40,人数为:9333037
年龄为:41,人数为:9332827
年龄为:42,人数为:9337791
年龄为:43,人数为:9334429
年龄为:44,人数为:9332179
年龄为:45,人数为:9331110
年龄为:46,人数为:9329787
年龄为:47,人数为:9338116
年龄为:48,人数为:9331829
年龄为:49,人数为:9330124
年龄为:50,人数为:9337015
年龄为:51,人数为:9334705
年龄为:52,人数为:9334307
年龄为:53,人数为:9335896
年龄为:54,人数为:9337154
年龄为:55,人数为:9332938
年龄为:56,人数为:9334360
年龄为:57,人数为:9332481
年龄为:58,人数为:9333495
年龄为:59,人数为:9334232
年龄为:60,人数为:9331570
年龄为:61,人数为:9333007
年龄为:62,人数为:9334615
年龄为:63,人数为:9334981
年龄为:64,人数为:9334600
年龄为:65,人数为:9334210
年龄为:66,人数为:9333632
年龄为:67,人数为:9336130
年龄为:68,人数为:9328514
年龄为:69,人数为:9338810
年龄为:70,人数为:9334857
年龄为:71,人数为:9330197
年龄为:72,人数为:9334999
年龄为:73,人数为:9326946
年龄为:74,人数为:9334481
年龄为:75,人数为:9333426
年龄为:76,人数为:9333768
年龄为:77,人数为:9337391
年龄为:78,人数为:9330196
年龄为:79,人数为:9333088
年龄为:80,人数为:9330841
年龄为:81,人数为:9331103
年龄为:82,人数为:9338309
年龄为:83,人数为:9329852
年龄为:84,人数为:9332395
年龄为:85,人数为:9332117
年龄为:86,人数为:9330342
年龄为:87,人数为:9335361
年龄为:88,人数为:9332461
年龄为:89,人数为:9333389
年龄为:90,人数为:9336451
年龄为:91,人数为:9333524
年龄为:92,人数为:9331630
年龄为:93,人数为:9328366
年龄为:94,人数为:9336662
年龄为:95,人数为:9324123
年龄为:96,人数为:9331346
年龄为:97,人数为:9333340
年龄为:98,人数为:9333272
年龄为:99,人数为:9336085
年龄为:100,人数为:9335977
年龄为:101,人数为:9334919
年龄为:102,人数为:9334072
年龄为:103,人数为:9329909
年龄为:104,人数为:9331572
年龄为:105,人数为:9330906
年龄为:106,人数为:9330683
年龄为:107,人数为:9329029
年龄为:108,人数为:9331468
年龄为:109,人数为:9333484
年龄为:110,人数为:9334685
年龄为:111,人数为:9333569
年龄为:112,人数为:9331073
年龄为:113,人数为:9335120
年龄为:114,人数为:9343576
年龄为:115,人数为:9337559
年龄为:116,人数为:9332190
年龄为:117,人数为:9338801
年龄为:118,人数为:9330564
年龄为:119,人数为:9334999
年龄为:120,人数为:9334627
年龄为:121,人数为:9332672
年龄为:122,人数为:9328959
年龄为:123,人数为:9332175
年龄为:124,人数为:9331484
年龄为:125,人数为:9335517
年龄为:126,人数为:9331576
年龄为:127,人数为:9338352
年龄为:128,人数为:9334660
年龄为:129,人数为:9328168
年龄为:130,人数为:9336634
年龄为:131,人数为:9332817
年龄为:132,人数为:9336275
年龄为:133,人数为:9337280
年龄为:134,人数为:9329472
年龄为:135,人数为:9336568
年龄为:136,人数为:9327224
年龄为:137,人数为:9331727
年龄为:138,人数为:9333350
年龄为:139,人数为:9339885
年龄为:140,人数为:9337158
年龄为:141,人数为:9331551
年龄为:142,人数为:9336084
年龄为:143,人数为:9334026
年龄为:144,人数为:9326688
年龄为:145,人数为:9330721
年龄为:146,人数为:9331343
年龄为:147,人数为:9337423
年龄为:148,人数为:9332641
年龄为:149,人数为:9337670