JAVA面试--IO

 

(1)题目:给出一个整数数组,将其写入一个文件,再从文件中读出,并按整数大小逆序打印。

这道面试题是我看了好多面试题后自己编的,希望能对将要面试的人有点帮助。

对于我这个新手来说,觉得这个题目考察的基础东西还是比较多的:

1.对文件的写入和读出方面的考察

2.对不同形的数组转换方面的考察

3.对string基本用法的考察(split,substring)

4.类型转换的考察

5.对算法的考察(排序)

ps:我写的这个题目肯定有其他更好的方法,我这个就算是一个笨方法了,由于我编程功力还不深厚,而且写下面的这些代码借助了myEclipse这样先进的IDE工具,还时不时的上baidu ,google搜索一下,但在笔试的时候全屏记忆在纸上写,这样难度可想而知。看来基础真的很重要

 

  1. package com.xyq.demo;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.BufferedWriter;  
  5. import java.io.FileInputStream;  
  6. import java.io.FileOutputStream;  
  7. import java.io.IOException;  
  8. import java.io.InputStreamReader;  
  9. import java.io.OutputStreamWriter;  
  10.   
  11. /** 
  12.  *  
  13.  * @author xyq 
  14.  * 
  15.  * 作用:一道面试题 
  16.  */  
  17. public class T1 {  
  18.     /** 
  19.      * 把数组写入文件中 
  20.      * @throws IOException 
  21.      */  
  22.     void writefile() throws IOException {  
  23.         String str = "";  
  24.         FileOutputStream fos = new FileOutputStream("Result.txt");  
  25.         OutputStreamWriter osw = new OutputStreamWriter(fos);  
  26.         BufferedWriter bw = new BufferedWriter(osw);  
  27.         int[] intArr = new int[] { 10, -101,25346 };  
  28.         //注意在这里输入到文件中的是字符串类型String而不是数组类型  
  29.         for (int i = 0; i < intArr.length; i++) {  
  30.             str += intArr[i] + ",";  
  31.         }  
  32.         str = str.substring(0, str.length()-1);  
  33.         bw.write(str);  
  34.         bw.close();  
  35.     }  
  36.     /** 
  37.      * 把数组从文件中读出来,并排序 
  38.      * @throws IOException 
  39.      */  
  40.     void readfile() throws IOException {  
  41.         String str = "";  
  42.         String str1 = "";  
  43.         FileInputStream fis = new FileInputStream("Result.txt");  
  44.         InputStreamReader isr = new InputStreamReader(fis);  
  45.         BufferedReader br = new BufferedReader(isr);  
  46.         //从文件中读出字符串String类型  
  47.         str = br.readLine();  
  48.         //把字符串转换成数组类型,再进行排序  
  49.         String[] strArr = str.split(",");  
  50.         //把String数组转换成int数组  
  51.         int[] intArr=new int[strArr.length];  
  52.         for(int i=0;i<strArr.length;i++){  
  53.            intArr[i]=Integer.parseInt(strArr[i]);  
  54.         }  
  55.         sort(intArr);  
  56.         for (int i = 0; i < intArr.length; i++) {  
  57.             str1 += intArr[i]+",";  
  58.         }  
  59.         str1 = str1.substring(0, str1.length()-1);  
  60.         System.out.print(str1);  
  61.         br.close();  
  62.     }  
  63.     /** 
  64.      * 冒泡排序算法 
  65.      * @param data 
  66.      */  
  67.     public static void sort(int[] data) {  
  68.         int temp;  
  69.         for (int i = 0; i < data.length; i++) {  
  70.             for (int j = data.length - 1; j > i; j--) {  
  71.                 if (data[i] < data[j]) {  
  72.                     temp = data[i];  
  73.                     data[i] = data[j];  
  74.                     data[j] = temp;  
  75.                 }  
  76.             }  
  77.         }  
  78.     }  
  79.     /** 
  80.      * main方法 
  81.      * @param args 
  82.      * @throws IOException 
  83.      */  
  84.     public static void main(String[] args) throws IOException {  
  85.         new T1().writefile();  
  86.         new T1().readfile();  
  87.     }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值