文件读写

问题:请编写一个 Java 程序,随机生成 20 个不重复的[1, 100]之间的整数,将这 20 个整数排序(按从小到大的顺序)以后,以文本文件的格式写入文件”data.txt”中,数字之间用空格间隔

 1 package train;
 2 
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.util.ArrayList;
 7 import java.util.Collections;
 8 import java.util.Iterator;
 9 import java.util.List;
10 import java.util.Random;
11 
12 public class D_FileIO{
13     public static void main(String[] args) {
14         List<Integer> list=new ArrayList<>();
15         Random random=new Random();
16         int num;
17         for(int i=0;i<20;i++) {
18             num=random.nextInt(100);
19             if(list.contains(num))
20                 continue;
21             else
22                 list.add(num);
23         }
24         Collections.sort(list);
25         try {
26             FileOutputStream os=new FileOutputStream("data.txt");
27             Iterator<Integer> iterator=list.iterator();
28             String string=null;
29             byte[] buffer=new byte[1024];
30             while(iterator.hasNext()) {
31                 string=iterator.next().toString();//注意此处得出string值时,一定记得要加上.next(),不然会机器会爆内存
32                 string=string+" ";//按照题意在每个数字后面添加一个空格
33                 buffer=string.getBytes();//将string转换为字节数组,用于在文件输出字节流os中写入
34                 os.write(buffer);
35                 os.flush();//强制刷新此输出流
36             }
37             os.close();
38         } catch (FileNotFoundException e) {
39             e.printStackTrace();
40         } catch (IOException e) {
41             e.printStackTrace();
42         }
43     }
44 }

 

posted @ 2018-12-30 11:28  里昂静  阅读(206)  评论(0编辑  收藏  举报