java randomaccessfile pipe closed_JavaIO流(02)RandomAccessFile类详解

RandomAccessFile类

该类主要是对文件内容进行操作,可以随机的读取一个文件中指定位置的数据;

但是如果想实现这样的功能,则每个数据的长度应该保持一致;

构造方法:

接受File类中的对象,但是在设置时需要设置模式,r:只读;w:只写;rw:读写(常用)

public RandomAccessFile(File file, String mode)throws FileNotFoundException

不再使用File类对象表示文件,而是直接输入了一个固定的文件路径

public RandomAccessFile(String name,String mode)throws FileNotFoundException

常用功能:

关闭操作

public void close()throws IOException

将一个字符串写入到文件中,按字节的方式处理

public final void writeBytes(String s)throws IOException

将一个int型数据写入文件,长度为4位

public final void writeInt(int v)throws IOException

指针跳过多少个字节

public int skipBytes(int n)throws IOException

将内容读取到byte数组中

public int read(byte[] b)throws IOException

读取一个字节

public final byte readByte()throws IOException

从文件中读取整型数据

public final int readInt()throws IOException

设置读指针的位置

public void seek(long pos)throws IOException

package cn.itcast02;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.nio.ByteOrder;

public class DemoRandowAccessFile01 {

public static void main(String[] args) throws IOException {

File file = new File("G:" + File.separator +"JavaTest"+File.separator + "test01.txt" );

/*

RandomAccessFile rdf = new RandomAccessFile(file, "rw");

//写入文件内容

String name = " liuyan ";

int age = 40;

rdf.writeBytes(name);

rdf.writeInt(age);

String name2 = " xiaoming";

int age2 = 30;

rdf.writeBytes(name2);

rdf.writeInt(age2);

String name3 = " doudou ";

int age3 = 24;

rdf.writeBytes(name3);

rdf.writeInt(age3);

rdf.close();

*/

//读取文件内容

RandomAccessFile rdf = new RandomAccessFile(file, "r" );

//创建空间存放姓名

byte[] bytes = new byte[8];

rdf.skipBytes(12);

for (int i = 0; i < bytes.length; i++) {

bytes[i] = rdf.readByte();

}

//将byte转化为String

String name = new String(bytes);

int age = rdf.readInt();

System. out.println("第二个人信息" +"姓名:" +name+" " +"年龄:" +age);

//指针返回到文件开头

rdf.seek(0);

rdf.close();

}

}

输出:

第二个人信息姓名:xiaoming  年龄:30

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值