题目:给出一个整数数组,将其写入一个文件,再从文件中读出,并按整数大小逆序打印。
对新手来说,觉得这个题目考察的基础东西还是比较多的:
1.对文件的写入和读出方面的考察
2.对不同形的数组转换方面的考察
3.对string基本用法的考察(split,substring)
4.类型转换的考察
5.对算法的考察(排序)
我写的这个题目肯定有其他更好的方法,我这个就算是一个笨方法了,由于我编程功力还不深厚,而且写下面的这些代码借助了Eclipse这样先进的IDE工具,但在笔试的时候全屏记忆在纸上写,这样难度可想而知。看来基础真的很重要。
package com.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 1.给出一个整数数组
* 2.将其写入一个文件
* 3.再从文件中读出
* 4.并按整数大小逆序打印。
* @author liuhuanchao
*/
public class TestFile01 {
public static void main(String[] args) {
//定义一个数组
int[] array = { 1, 9, 3, 2, 7, 5, 8, 6, 0, 4 };
writeFile(array);
readFile();
}
//写入文件
public static void writeFile(int array[]) {
try {
FileOutputStream fos = new FileOutputStream("file/file/Result.txt");
OutputStreamWriter os = new OutputStreamWriter(fos, "utf-8");
BufferedWriter bw = new BufferedWriter(os);
String str = "";
for (int i = 0; i < array.length; i++) {
str += array[i] + ",";
}
str = str.substring(0, str.length() - 1);
bw.write(str);
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//读文件
public static void readFile() {
try {
FileInputStream in = new FileInputStream("file/file/Result.txt");
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String str = br.readLine();
String[] strArr = str.split(",");
int[] intArr = new int[strArr.length];
for (int i = 0; i < strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}
sort(intArr);
} catch (Exception e) {
e.printStackTrace();
}
}
//冒泡排序
private static void sort(int[] intArr) {
int temp;
for (int i = 0; i < intArr.length; i++) {
for (int j = intArr.length - 1; j > i; j--) {
if (intArr[i] >intArr[j]) {
temp = intArr[i];
intArr[i] = intArr[j];
intArr[j] = temp;
}
}
}
for (int i = 0; i < intArr.length; i++) {
System.out.print(intArr[i]+" ");
}
}
}