首页 > 数据库技术 > 详细

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

时间:2015-03-28 11:35:17      阅读:437      评论:0      收藏:0      [点我收藏+]

RandomAccessFile类

/*
 * RandomAccessFile类,随机读写文件
 * 
 * 数据分段要有规律,每段大小相等,可以将每段数据设置为较大的值,足以存在每一个段的数据
 * 
 */
public class Test04 {
    public static void main(String[] args) throws IOException {
        //writeFile();
        readFile();
    }

    // 写入数据
    public static void writeFile() throws IOException {
        //以读写模式创建一个RandomAccessFile实例
        RandomAccessFile raf=new RandomAccessFile("D:\\Java\\aaa.txt", "rw");
        raf.write("张三".getBytes());
        raf.write(97);
        raf.writeUTF("欢迎来到南京网博!");
        raf.writeInt(20);
        raf.writeBoolean(true);
        raf.writeDouble(12.5);

        raf.write("张三".getBytes());
        raf.seek(20);
        raf.writeInt(20);
        raf.write("李四".getBytes());
        raf.seek(24*1+20);
        raf.writeInt(18);

        //将指针移动到第四个学生的位置,空出第三个学生
        raf.seek(24*3); 
        raf.write("赵小六".getBytes());
        raf.seek(24*3+20);
        raf.writeInt(23);

        System.out.println("写入文件成功!");
        raf.close();
    }

    //读取数据
    public static void readFile() throws IOException{
        RandomAccessFile raf=new RandomAccessFile("D:\\Java\\aaa.txt", "rw");
        String name=new String(buffer);
        System.out.println("前6个字节:"+name);

        int data=raf.read();
        System.out.println("第7个字节:"+(char)data);

        String welcome=raf.readUTF();
        System.out.println("第8个字节及之后:"+welcome);
        raf.seek(24*3);
        byte[] buffer=new byte[20];
        int num=raf.read(buffer);
        System.out.println(num);
        System.out.println(Arrays.toString(buffer));
        String name=new String(buffer,0,num);
        int age=raf.readInt();
        System.out.println("第四个学生的信息:");
        System.out.println("姓名:"+name+",年龄:"+age);


        System.out.println("当前指针的位置:"+raf.getFilePointer());


        raf.close();
    }
}

JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile

原文:http://blog.csdn.net/wangzi11322/article/details/44699517

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!