Java使用Reader類的BufferedReader和BufferedWriter處理文件

問題描述:產生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);
		}
		
	}
} 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章