菜鸟新人昨天面试碰见一个题,给定数组arr_num={1,2,3,4,5,6,7,8,9,10},要求将这个数组写入一个文件名为abc.emp的文件中,然后在读出来,并且将这个数组输出为{10,9,8,7,6,5,4,3,2,1}。
当时自己写的乱七八糟的,该有异常抛出的没有,还有一些方法忘记怎么拼写 。。。汗!
这是自己回去重新写的,但感觉可以写的更简单点,求高手指点(原谅我把类名命名为File。。)。
public class File {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr_num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
java.io.File f = new java.io.File("abc.emp");
if (f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
new File().write(arr_num, f);
new File().read(f);
}
public void write(int[] a, java.io.File f) {
StringBuffer sb = new StringBuffer();
FileWriter fw = null;
for (int i = 0; i < a.length; i++) {
if (i < a.length - 1) {
sb.append(a[i] + ",");
} else {
sb.append(a[i]);
}
}
try {
fw = new FileWriter(f);
fw.write(sb.toString() + "\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fw.flush();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void read(java.io.File f) {
BufferedReader br = null;
StringBuffer ss = new StringBuffer();
String s = null;
try {
br = new BufferedReader(new FileReader(f));
while ((s = br.readLine()) != null) {
System.out.println(s);
ss.append(s);
}
reverse(ss);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void reverse(StringBuffer r) {
System.out.println("倒序排列为:");
String[] s = r.toString().split(",");
for (int i = s.length - 1; i >= 0; i--) {
if (i > 0) {
System.out.print(s[i] + ",");
} else {
System.out.print(s[i]);
}
}
}
}
经过这次,感觉自己太借助于编辑器的提示了,一手写就开始各种忘记,以后也要多多锻炼自己手写代码的能力了。菜鸟,frighting!