随机访问流RandomAccessFile的使用

74 篇文章 0 订阅

随机访问流

RandomAccessFile概述

RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream的功能。支持对随机访问(在文件中的任意位置)文件的读取和写入。

 

例子1:RandomAccessFile的使用

import java.io.IOException;

import java.io.RandomAccessFile;

 

/*

 * 随机访问流:

 *             RandomAccessFile类不属于流,是Object类的子类。

 *             但它融合了InputStream和OutputStream的功能。

 *             支持对文件的随机访问读取和写入。

 *

 *public RandomAccessFile(String name,String mode):第一个参数是文件路径,第二个参数是操作文件的模式。

 *             模式有四种,我们最常用的一种叫"rw",这种方式表示我既可以写数据,也可以读取数据

 */

public class RandomAccessFileDemo {

         publicstatic void main(String[] args) throws IOException {

                   write();

                   read();

         }

 

         privatestatic void read() throws IOException {

                   //创建随机访问流对象

                   RandomAccessFileraf = new RandomAccessFile("raf.txt", "rw");

 

                   inti = raf.readInt();

                   System.out.println(i);

                   //该文件指针可以通过 getFilePointer方法读取,并通过 seek 方法设置。

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

 

                   charch = raf.readChar();

                   System.out.println(ch);

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

 

                   Strings = raf.readUTF();

                   System.out.println(s);

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

 

                   //我不想重头开始了,我就要读取a,怎么办呢?

                   raf.seek(4);

                   ch= raf.readChar();

                   System.out.println(ch);

         }

 

         privatestatic void write() throws IOException {

                   //创建随机访问流对象

                   RandomAccessFileraf = new RandomAccessFile("raf.txt", "rw");

 

                   //怎么玩呢?

                   raf.writeInt(100);

                   raf.writeChar('a');

                   raf.writeUTF("中国");

 

                   raf.close();

         }

}

运行结果:

100

当前文件的指针位置是:4

a

当前文件的指针位置是:6

中国

当前文件的指针位置是:14

a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值