import java.io.*;
public class x {
public static void main(String[] args) {
try{
BufferedReader in = new BufferedReader(
            new InputStreamReader(System.in));
int[] arr = new int[3];
String dir = "c:";

System.out.println("1");
System.out.println("2");

        String x = in.readLine();
        int m = Integer.parseInt(x);
        
        switch(m)
        {
        case 1:        
         for(int i = 0;i < arr.length;i++)
         {
        
         System.out.println("Input:");
             String y = in.readLine();
             int a = Integer.parseInt(y);
             arr[i] = a;
              }
         break;
        case 2:
System.out.println("输入:");
String Num = in.readLine();
int num = Integer.parseInt(Num);
if(arr[0] == num)
    System.out.println("该数已存在");
else
    System.out.println("该数不存在");
break;        
        }
        File aFile = new File(dir,"a.txt");
        DataOutputStream myStream = new DataOutputStream(
         new FileOutputStream(aFile));
        for(int i = 0;i < arr.length;i++)
            myStream.writeChars(arr[i] + "");
}
catch(IOException e){}
}
}
我每次选择1,输入数组到文件之后,再选择2查询刚输入的数字的时候,刚刚保存到文件中的数字就全变成0了,请问大家这是怎么回事??

解决方案 »

  1.   

    我没看到你从文件读数据到这个数组中啊——int[] arr = new int[3];
    另外,你这个程序界面太不好了,输入1是什么意思,输入2是什么意思都不写出来。
      

  2.   

    你都没读文件,请问,你怎么跟文件里的数据比较?
    如果输入1,就会循环输入3个数存入数组,然后保存到文件,退出程序
    如果要输入2,就必须重新运行一次程序,这时候内存里已经没有你刚才输入的数据了,arr[0]只能是默认值0。
    所以,如果你一开始输入2的话,只有输入0才会提示已经存在,其它的数都提示不存在的。
    你自己在脑袋里运行一下这个程序,想想它的执行过程吧。