RandomAccessFile 随机流

随机流不是一个流 是一个对象 继承 Object 

---摘自jdk:

    

此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。

通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException(是一种 IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException,而不是 EOFException。需要特别指出的是,如果流已被关闭,则可能抛出 IOException

 

public RandomAccessFile(String name,  String mode);

String name --- 文件 或者 文件路径

 

mode 参数指定用以打开文件的访问模式。允许的值及其含意为:

含意

"r"以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException
"rw"打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
"rws"打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
"rwd"  打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。 

代码演示 rw  读写:

public static void main(String[] args) throws IOException {
		//write();
		reader();
		
	}
	private static void reader() throws IOException {
		RandomAccessFile ra = new RandomAccessFile("a.txt", "rw");
		int a = ra.readInt();
		System.out.println(a);
		char c = ra.readChar();
		System.out.println(c+":"+ra.getFilePointer());
		
	}
	public  static void  write() throws IOException{
		RandomAccessFile ra = new RandomAccessFile("a.txt", "rw");
		ra.writeInt(12222);
		ra.writeChars("阿斯顿");
		ra.writeUTF("啊实打实");
		ra.close();
	}

 

我感觉功能有点局限

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值