java中IO流总结之五:RandomAccessFile类的用法总结

       RandomAccessFile类直接继承Object类,但它是IO包中的成员,用于随机访问文件,进行读写操作。字符流和字节流只能按顺序对文件进行读和写。RandomAccessFile类内部封装了一个数组,可以通过指针来进行读写操作。

完成读写的原理:就是内部封装了字节的输入和输出流。

1)、RandomAccessFile类的构造方法有两种重载形式:

   RandomAccessFile(File file,String mode)

   RandomAccessFile(String name,String mode)

   第一种是访问file指定的文件,访问形式有参数mode决定

   第二种是访问参数那么指定的文件,访问形式有参数mode决定

  mode参数有两个常用参数的可选值:“r”和“rw”

 “r”: 表示只读  ;  “rw”:表示读写

通过构造函数可以看出,该类只能操作文件,而且操作文件还有模式

如果模式为“r”,不会创建文件,会去读取已经存在的文件,如果该文件不存在,则会出现异常

如果模式为“rw”,操作文件不存在会自动创建,如果存在则不会覆盖。

 

2)、RandomAccessFile类中提供了一系列读取和写入数据的方法:

   int  getFilePointer():获取文件读写指针所在的位置

   int length():获得文件长度

   void seek(long pos):设置文件读写指针到pos个字节处

Void skipBytes(int n):是读写指针跳过n个字节

String readLine():从文件中读取下一行文件

Void writeButes(String s):以字节序列的形式向文件中写入一个字符串。

Void writeInt(int v):以4个字节的形式向文件中写入一个整数

Void writeLong(long v):以8个字节的形式向文件中写入一个long值

Void writeByte(int v):以单字节的形式向文件中写入一个byte值

Void writeBoolean(boolean v):以字节的形式向文件中写入一个boolean值

Viod writeChar(int v):以双字节的形式向文件中写入一个char值Boolean readBoolean():从文件中读取一个boolean值

Byte readByte():从文件中读取一个带符号位的字节

Byte readChar():从文件中读取一个字符

Byte readInt():从文件中读取一个带符号位的整数

Byte readLong():从文件中读取一个带符号位的long值

 

实例代码如下:

//创建一个文件file

  File file=new File("E://RandomAccessFile.txt");

//以读写模式创建RandomAccessFile对象
  RandomAccessFile raFile=new RandomAccessFile(file,"rw");
  raFile.writeBytes("abcdefghijklmnopqrstuvwxyz");
  //打印文件读写指针位置
  System.out.println(raFile.getFilePointer());
  //打印文件内容,隔一个字节打印一个字节
  for (int i = 0; i < raFile.length();i+=2) {
   raFile.seek(i);//定位指针
   System.out.println((char)raFile.readByte());

打印结果如下:

a
c
e
g
i
k
m
o
q
s
u
w
y

 

 

<!--EndFragment-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值