import java.io.*;
public class array
{
public static void main(String[] args) 
{
  
  try
  {
BufferedOutputStream out=new  BufferedOutputStream(new FileOutputStream("E:/java/Test1.java"));
    DataOutputStream dout=new DataOutputStream(out);
dout.writeDouble(Math.random());
dout.writeBoolean(true);
BufferedInputStream in=new  BufferedInputStream(new FileInputStream("E:/java/Test1.java"));
DataInputStream din=new DataInputStream(in);
System.out.println(din.readDouble());
System.out.println(din.readBoolean());
dout.close();
din.close();
  }
  catch (IOException e)
  {
  e.printStackTrace();
  }
}
}

解决方案 »

  1.   

    代码没错啊 难道是你的JDK有问题了??
      

  2.   

    我运行了一下也是报java.io.EOFException....
    首先,你的类名,应该首字母大写,不应该用关键字之类的命名
    再次,你的读入和输出操作的都是同一个文件当然会报错~~public static void main(String[] args) 

      
      try 
      { 
    BufferedOutputStream out=new  BufferedOutputStream(new FileOutputStream("E:/Test1.java")); //output
    DataOutputStream dout=new DataOutputStream(out); 
    dout.writeDouble(Math.random()); 
    dout.writeBoolean(true); 
    BufferedInputStream in=new  BufferedInputStream(new FileInputStream("E:/Test.java")); //input
    DataInputStream din=new DataInputStream(in); 
    System.out.println(din.readDouble()); 
    System.out.println(din.readBoolean()); 
    dout.close(); 
    din.close(); 
      } 
      catch (IOException e) 
      { 
      e.printStackTrace(); 
      } 
    } 运行结果:
    5.311963438999692E233
    true我的Test.java是这样写的:public class Test{
    double d = 123.321D;
    boolean b = false;
    }
      

  3.   

    写完关掉out流,建立din流重新 读,或者写读写成两个方法 相信楼主会明白的 ,代码就省了
      

  4.   


    那可能是你的Test1.java有问题,看一下API中DataOutputStream 尤其是DataInput接口的讲解
      

  5.   

    你输出的时候flush 一下,输出完了就直接把dout关了,再用inputStream操作那个文件就可以了。