JavaはReaderクラスのBufferedReaderとBufferedWriterを使用してファイルを処理する

1548 ワード

問題の説明:15個の20~9999の間のランダムな整数を生成して、それからBufferedWriterクラスを利用してそれをファイルfile 2.txtファイルの中に書きます:後で更にファイルの中のデータを読み取ってそしてそれらを昇順で並べ替えます.まずRandomのnextInt()メソッドを用いて乱数を生成し,配列a[15]で保存する.ファイルを書き込むときは、書き込むデータをout.write(Integer.toString(a[len]))に変換することに注意してください.書き込み内容が文字化けしてしまいます.内容を書き込んで改行すると、読みやすくなります.書き込みバッファが完了したらflush()を使用してバッファ内のデータをファイルに書き込み、バッファフローを閉じます.BufferedReaderクラスのreadLine()メソッドを用いて1行ずつ読み出し、データ型を整形して配列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