你不可以先转换
  如:
for(int i=0;i<a.length;i++)
    s[i]=(byte)a[i];
然后再存到文件里面吗?
  其实你这样转换的话会掉好多信息的,日后你要恢复的话就可能得不到以前的数据。
看看我这个方法行不
import java.io.*;
  public class Test1 
{
public static void main(String[] args) 
{
int [] a={1,2,3,4,5,6,7,8};
try{
                  DataOutputStream out=new DataOutputStream(
                                          new BufferedOutputStream(
                                             new FileOutputStream("e:/a.txt")));
                  for(int i=0;i<a.length;i++)
                     out.writeInt(a[i]);
                     out.close();
                 }catch(Exception e){
                  e.printStackTrace();
                 }
          }
}

解决方案 »

  1.   

    那就不一样,你再用DataInputStream 读出来看看是不是一样?
      import java.io.*;
    public class TestInputNumber
    {
    public static void main(String[] args) throws IOException
    {
    DataInputStream in=new DataInputStream(new BufferedInputStream(new FileInputStream("e:/a.txt")));
         int j;
         for(int i=0;i<8;i++)    //不过这里要知道有多大:i<8,就是8个数;
             System.out.println(in.readInt());
             }
    }
      

  2.   

    int [] a={1,2,3,4,5,6,7,8};
      当然你在这里转为byte类型的话,还可以得到正确结果,但如果你改成这样:
    int [] a={1000,2000,3000,4000,5000,6000,7000,8000};
      结果就不同了