java RadomAccessFile


 

 

RadomAccessFile对象

描述:此例实现了InputStream和OutputStream接口  提供了对文件通过字节的读写操作。通过getFilePointer 方法读取,并通过seek 方法设置。实现对文件的中某个位置的读取和写入

构造:

RandomAccessFile(File file,String mode)
          创建从中读取和向其中写入(可选)的随机存取文件流,该文件由 File 参数指定。
RandomAccessFile(String name,String mode)
          创建从中读取和向其中写入(可选)的随机存取文件流,该文件具有指定名称。

常用的方法:

 voidclose()
          关闭此随机存取文件流并释放与该流关联的所有系统资源。

 intread(byte[] b, int off, int len)
          将最多 len 个数据字节从此文件读入字节数组。

 intreadInt()
          从此文件读取一个有符号的 32 位整数。
 bytereadByte()
          从此文件读取一个有符号的八位值。
 StringreadLine()
          从此文件读取文本的下一行。
 voidseek(long pos)
          设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
 
 intskipBytes(int n)
          尝试跳过输入的 n 个字节以丢弃跳过的字节。
 voidwriteInt(int v)
          按四个字节将 int 写入该文件,先写高字节。

 void

writeByte(int v)
          按单字节值将 byte 写入该文件。

 

 

示例:

//掌握三个重要点

//第一读取权限。

//第二写入基础数据类型。

//第三指针调整
    
try {
RandomAccessFile rac = new RandomAccessFile("D:\\aa.txt", "r");
byte[] b = new byte[8]; // 8个字节。两个字
rac.read(b);
System.out.println(new String(b));
  // 如果当前盘符中没有这个文件,该对象会在盘符中创建这个文件,如果已有该文件,则从指针指向处开始写入,如果原来指针处有内容会覆盖原内容
RandomAccessFile rac1 = new RandomAccessFile("D:\\aa.txt", "rw");
// 如果在该处直接调用方法write,一个数字只会写入最低的8位,会丢失数字,而调用writeInt则会rac1.writeInt(98);

预留4个字节,不会造成字符丢失

 rac1.writeInt(98);

// 设置指针开始写入或开始读取的位置

rac1.seek(8);   

//尝试跳过输入的 n 个字节以丢弃跳过的字节。 跳过当前字节的N个字节进行读取和写入

rac1.skipBytes(8); //返回指针的当前位置  

rac1.getFilePointer();/
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

			


 

DataInputStream DataOutputStream

使用:

主要对基础数据类型的IO操作

示例:

try {
   DataInputStream dis = new DataInputStream(new FileInputStream(
     "data.txt"));
   dis.read(new byte[4]);
   dis.readInt();
   dis.readBoolean();
   
   
   

   DataOutputStream dos = new DataOutputStream(new FileOutputStream(
     "data.txt"));

   dos.write("你好".getBytes());
   dos.writeInt(128);
   dos.writeBoolean(true);
  } catch (IOException e) {
   e.printStackTrace();
  }


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值