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