我的文件内容
===========================
JAVA
php
编程真TMD闹心
===========================
File file = new File("F://io//io.txt") ;
RandomAccessFile raf = new RandomAccessFile(file , "rw") ;
String str = raf.readUTF() ;
System.out.println(str);
============================
Exception in thread "main" java.io.EOFException
at java.io.RandomAccessFile.readFully(RandomAccessFile.java:383)
at java.io.DataInputStream.readUTF(DataInputStream.java:592)
at java.io.RandomAccessFile.readUTF(RandomAccessFile.java:887)
at tio.RandomFileTest.main(RandomFileTest.java:44)
============================这是怎么回事啊 ?

解决方案 »

  1.   

    没有尝试用readLine()
    为什么readUTF()不可以呢 ?
      

  2.   

    使用readLine()倒是可以读出
    但是也读出了很多乱码
      

  3.   

    这是你的文件读到末尾的异常,判断一下再输出就可以了。File file = new File("C:\\0.txt");
    try {
    RandomAccessFile raf = new RandomAccessFile(file, "rw");
    System.out.println("begin:" + raf);
    while (raf.read()!=-1) {
    String str = raf.readUTF();
    System.out.println(str);
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
      

  4.   

    java.io.EOFException 到达文件或流的末尾,读过头了。