A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.io.IOException;
import java.io.RandomAccessFile;


public class RandomaAccessFileDemo {
public static void main(String[] args)throws IOException{
        write();
        read();
        randomWrite();
       
        }
//随机写入数据,可以实现已有数据的修改。
        public static void randomWrite()throws IOException{
                        RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
                        raf.seek(8*4);
                        System.out.println("pos:"+raf.getFilePointer());
                        raf.write("王武".getBytes());
                        raf.close();
        }
        public static void read()throws IOException{
                //只读模式
                RandomAccessFile raf = new RandomAccessFile("random.txt","r");
                //确定指针的位置
                raf.seek(8*1);//实现实现随机读取文件中的数据。注意:数据最好有规律。
                System.out.println("pos1:"+raf.getFilePointer());
                byte[] buf = new byte[4];
                raf.read(buf);
                String name = new String(buf);
                int age = raf.readInt();
                System.out.println(name+"::"+age);
                System.out.println("pos2:"+raf.getFilePointer());
                raf.close();
        }
        public static void write()throws IOException{
                //rw:当这个文件不存在,会创建该文件,当文件已存在,不会创建。所以不会像
                //输出流一样覆盖
                RandomAccessFile raf = new RandomAccessFile("random.txt","rw");
                //往文件找中写入人的基本信息,姓名,年龄。
                raf.write("zhangsan".getBytes());
                raf.writeInt(97);
                raf.close();
        }
}



2 个回复

正序浏览
文件中没有那么多的对象来让你读取.所以就跑出这个异常,就好比,你还没write就先read
回复 使用道具 举报
java.io.EOFException:当输入过程中意外到达文件或流的末尾时,抛出此异常。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马