文件读写
问题:请编写一个 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 }