java RandomAccessFile的使用

案例:

1、

 1 package cn.kongxh.io2;
 2 import java.io.File ;
 3 import java.io.RandomAccessFile ;
 4 public class RandomAccessFileDemo01{
 5     // 所有的异常直接抛出,程序中不再进行处理
 6     public static void main(String args[]) throws Exception{
 7         File f = new File("d:" + File.separator + "test.txt") ;    // 指定要操作的文件
 8         RandomAccessFile rdf = null ;        // 声明RandomAccessFile类的对象
 9         rdf = new RandomAccessFile(f,"rw") ;// 读写模式,如果文件不存在,会自动创建
10         String name = null ;
11         int age = 0 ;
12         name = "zhangsan" ;            // 字符串长度为8
13         age = 30 ;                    // 数字的长度为4
14         rdf.writeBytes(name) ;        // 将姓名写入文件之中
15         rdf.writeInt(age) ;            // 将年龄写入文件之中
16         name = "lisi    " ;            // 字符串长度为8
17         age = 31 ;                    // 数字的长度为4
18         rdf.writeBytes(name) ;        // 将姓名写入文件之中
19         rdf.writeInt(age) ;            // 将年龄写入文件之中
20         name = "wangwu  " ;            // 字符串长度为8
21         age = 32 ;                    // 数字的长度为4
22         rdf.writeBytes(name) ;        // 将姓名写入文件之中
23         rdf.writeInt(age) ;            // 将年龄写入文件之中
24         rdf.close() ;                // 关闭
25     }
26 };

2、

 1 package cn.kongxh.io2;
 2 import java.io.File ;
 3 import java.io.RandomAccessFile ;
 4 public class RandomAccessFileDemo02{
 5     // 所有的异常直接抛出,程序中不再进行处理
 6     public static void main(String args[]) throws Exception{
 7         File f = new File("d:" + File.separator + "test.txt") ;    // 指定要操作的文件
 8         RandomAccessFile rdf = null ;        // 声明RandomAccessFile类的对象
 9         rdf = new RandomAccessFile(f,"r") ;// 以只读的方式打开文件
10         String name = null ;
11         int age = 0 ;
12         byte b[] = new byte[8] ;    // 开辟byte数组
13         // 读取第二个人的信息,意味着要空出第一个人的信息
14         rdf.skipBytes(12) ;        // 跳过第一个人的信息
15         for(int i=0;i<b.length;i++){
16             b[i] = rdf.readByte() ;    // 读取一个字节
17         }
18         name = new String(b) ;    // 将读取出来的byte数组变为字符串
19         age = rdf.readInt() ;    // 读取数字
20         System.out.println("第二个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
21         // 读取第一个人的信息
22         rdf.seek(0) ;    // 指针回到文件的开头
23         for(int i=0;i<b.length;i++){
24             b[i] = rdf.readByte() ;    // 读取一个字节
25         }
26         name = new String(b) ;    // 将读取出来的byte数组变为字符串
27         age = rdf.readInt() ;    // 读取数字
28         System.out.println("第一个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
29         rdf.skipBytes(12) ;    // 空出第二个人的信息
30         for(int i=0;i<b.length;i++){
31             b[i] = rdf.readByte() ;    // 读取一个字节
32         }
33         name = new String(b) ;    // 将读取出来的byte数组变为字符串
34         age = rdf.readInt() ;    // 读取数字
35         System.out.println("第三个人的信息 --> 姓名:" + name + ";年龄:" + age) ;
36         rdf.close() ;                // 关闭
37     }
38 };

 

posted on 2017-05-19 16:57  祥昊  阅读(203)  评论(0编辑  收藏  举报

导航