Java中如何使用随机存取文件RandomAcessFile类?

 InputStreamOutputStream都只是单方面的读和写文件的内容,如果有随机的读取和写入文件内容的需要那该怎么办?

Java为我们提供了一个RandomAcessFile类,它就是专门用来随机存取文件的内容的。

  RandomAcessFile操作文件内容的时候,就好像操作一块内存区域一样。把字节用下标数字来进行定位,通过调用RandomAcessFileAPI方法,把指针的指向进行一定,达到随机存取数据的目的,主要的方法如下:

length()  得到文件内容的字节长度

seek()    设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。

read()和write() 读取和写入字节数据

以下是将文件中的所有字母a换成字母的c的示例程序。

public class Test5 {

	public static void main(String[] args) {
		try {
			//创建随机读取文件对象
			RandomAccessFile file=new RandomAccessFile("D://1.txt", "rw");
			//遍历file的字节的数据
			try {
				for (int i = 0; i < file.length(); i++) {
					byte b=(byte) file.read();//read()方法读取一个字节
					char c=(char) b;//转换成char类型
					if(c=='a'){
						file.seek(i);
						file.write('c');//这个位置写入新的字符
					}
				}
				file.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

说明:RandomAcessFile的大多数方法都会抛出IOException,以上示例程序只是简单的try-catch,而在实际的开发中,应该针对不同的情况,不同的异常做出不同的响应。

 

总结:

RandomAcessFile的使用思路主要包括以下一些项目:

1.length()方法获取文件的内容长度

2.seek()方法随机的到达任何需要存储数据的地方

3.调用read()方法获取当前位置的数据,用write()方法写入数据

4.完成需要后,调研close方法关闭文件的打开



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值