package inout.test;
import java.io.*;
public class Test {
 public static void main(String args[])
 {
  FileInputStream fis=null;
  DataInputStream dis=null;
  FileOutputStream fos=null;
  DataOutputStream dos=null;
  try {
for(int i=0;i<10;i++)
  {
  fos=new FileOutputStream("E:/w.txt");
  dos=new DataOutputStream(fos);
  double x=Math.random()*100;
  double y=Math.random()*100;
  dos.writeDouble(x);
  dos.writeDouble(y);
  System.out.println(x);
  System.out.println(y);
  }
   } catch (Exception e) {

e.printStackTrace();
   }finally{
   try {
dos.close();
   fos.close();
} catch (IOException e) {

e.printStackTrace();
}
   }
   try {
fis=new FileInputStream("E:/w.txt");
dis=new DataInputStream(fis);
double a;
while((a=dis.read())!=-1)

System.out.println(a);
}
} catch (Exception e) {

e.printStackTrace();
}finally{
try {
dis.close();
fis.close();
} catch (IOException e) {

e.printStackTrace();
}
} }
}

解决方案 »

  1.   


    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.EOFException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;public class Test {
    public static void main(String args[]) {
    FileInputStream fis = null;
    DataInputStream dis = null;
    FileOutputStream fos = null;
    DataOutputStream dos = null;
    try {
    //要在这里生成新对象,否则每次都写到新的文件,覆盖掉原来的内容
    fos = new FileOutputStream("E:/w.txt");
    dos = new DataOutputStream(fos);
    for (int i = 0; i < 10; i++) {

    double x = Math.random() * 100;
    double y = Math.random() * 100;
    dos.writeDouble(x);
    dos.writeDouble(y);
    }
    } catch (Exception e) { e.printStackTrace();
    } finally {
    try {
    dos.close();
    fos.close();
    } catch (IOException e) { e.printStackTrace();
    }
    }
    try {
    fis = new FileInputStream("E:/w.txt");
    dis = new DataInputStream(fis);
    double a;
    //这里做了些处理
    while (Double.isNaN(a = dis.readDouble()) == false) {
    System.out.println(a);
    }
    } catch (Exception e) {
    if(e instanceof EOFException) {
    System.out.println("读完了");
    } else {
    e.printStackTrace();
    }
    } finally {
    try {
    dis.close();
    fis.close();
    } catch (IOException e) { e.printStackTrace();
    }
    }
    }
    }
      

  2.   

    /*
     * ***********改成下面这样******************
     */

    while (true) {
    try {
    a = dis.readDouble();
    } catch (EOFException e) {
    break;
    }
    System.out.println(a);
    }

    /*
     * *****************************************
     */
      

  3.   

    你写进去的时候是以double的形式   读出来的时候 应该是以string型的吧 你转换一下试试看...
      

  4.   

    import java.io.*;public class Test {
    public static void main(String args[]) {
    FileInputStream fis = null;
    DataInputStream dis = null;
    FileOutputStream fos = null;
    DataOutputStream dos = null;
    try {
    for (int i = 0; i < 10; i++) {
    fos = new FileOutputStream("F:/w.txt");
    dos = new DataOutputStream(fos);
    double x = Math.random() * 100;
    double y = Math.random() * 100;
    dos.writeDouble(x);
    dos.writeDouble(y);
    System.out.println(x);
    System.out.println(y);
    }
    } catch (Exception e) { e.printStackTrace();
    } finally {
    try {
    dos.close();
    fos.close();
    } catch (IOException e) { e.printStackTrace();
    }
    }
    try {
    fis = new FileInputStream("F:/w.txt");
    dis = new DataInputStream(fis);
    double a;

    /*
     * ***********改成下面这样******************
     */

    while (true) {
    try {
    a = dis.readDouble();
    } catch (EOFException e) {
    break;
    }
    System.out.println(a);
    }

    /*
     * *****************************************
     */


    } catch (Exception e) { e.printStackTrace();
    } finally {
    try {
    dis.close();
    fis.close();
    } catch (IOException e) { e.printStackTrace();
    }
    } }
    }
    88.24052131415459
    42.10427831043786
    97.62593318159414
    77.47038940410273
    52.768525566126726
    11.884276379383895
    36.94023535303982
    90.14372419660332
    95.06617986414537
    97.96870473140659
    18.68726180676682
    41.04677341484643
    41.62175760326863
    46.25529459153687
    21.183624015510127
    30.925908794025826
    86.41966996938136
    86.70378085958089
    65.7545573446809
    44.72963875871506
    65.7545573446809
    44.72963875871506