This code has a function about reading some numbers from a exiting file, sorting and writing to another。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
public class ReadAndWrite {
public static void main(String[] args) throws IOException {
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = new StringBuffer();
String str = null;
String[] arr;
int[] arr1;
String[] path = { "e:/a.in", "e:/a.out" };
//Reads the numbers and cast them to a StringBuffer type.
File file = new File(path[0]);
if (!file.exists()) {
throw new FileNotFoundException();
}
BufferedReader br = new BufferedReader(new FileReader(file));
while ((str = br.readLine()) != null) {
sb.append(str);
}
br.close();
//Splitting and Casting to array of int.
arr = sb.toString().split(" ");
arr1 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr1[i] = Integer.parseInt(arr[i]);
}
//Sorting
Arrays.sort(arr1);
//Creates a file if in need and writes to it.
File out = new File(path[1]);
if (!out.exists()) {
out.createNewFile();
}
BufferedWriter bf = new BufferedWriter(new FileWriter(out));
if (arr1.length > 0) {
for (int i = 0; i < arr1.length; i++) {
sb1.append(arr1[i] + " ");
}
bf.write(sb1.toString().trim());
}
bf.close();
System.out.println("数据已写入");
}
}
Such as there have a series of number in file a.in:5 3 9 1 6 2 8
There will have a output in filea.out: 1 2 3 5 6 8 9