問題描述:產生15個20~9999之間的隨機整數,然後利用BufferedWriter類將其寫入文件file2.txt文件中:之後再讀取文件中的數據並將它們以升序排序。
先利用Random的nextInt()方法產生隨機數,用數組a[15]保存。文件寫入時注意要把寫入的數據轉換,即out.write(Integer.toString(a[len]));否則寫入的內容會變成亂碼。寫入內容後換行,便於等下讀出來。寫入緩衝區完成後使用flush()將緩衝區中的數據寫到文件中並關閉緩衝流。利用BufferedReader類的readLine()方法每次讀取一行並轉換數據類型爲整形並保存進數組b裏面,再利用Arrays.sort(b);方法把數組b排序再輸出b數組的每個值。
package ch;
import java.io.*;
import java.util.Arrays;
import java.util.Random;
public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
int a[]=new int[15];
int len=0;
Random random=new Random();
for(int i=0;i<=a.length-1;i++) {
a[i]=random.nextInt(9999)+20;//用數組保存產生的隨機數
}
try{
BufferedWriter out=new BufferedWriter(new FileWriter("D:\\Java文件空間\\file2.txt"));
while(len<=14) {
out.write(Integer.toString(a[len]));//寫入到緩衝區
len++;
out.newLine();//每寫入一個隨機數換一行
}
out.flush();//將緩衝區的數據寫入到文件
out.close();//關閉緩衝區
FileReader fr=new FileReader("D:\\Java文件空間\\file2.txt");
BufferedReader in=new BufferedReader(fr);
String str;
int b[]=new int [15];
int position=0;
while((str=in.readLine())!=null) {//讀出數據,每次只讀一行
b[position]=Integer.parseInt(str);//讀出後進行數據類型轉換並保存進數組
position++;
}
Arrays.sort(b);//給數組排序
for(int k=0;k<b.length;k++) {
System.out.println(b[k]);//輸出數組b的數據
}
in.close();
}
catch(IOException ioe) {//捉住異常
System.out.println("錯誤!"+ioe);
}
}
}