java在文件指定位置写_关于如何实现java在文件任何位置进行读写操作

一、API解读

java可以使用RandomAccessFile通过文件指针定位读写位置(默认为文件开始处即seek(0)),RandomAccessFile对象本地方法seek来设置文件开始位置(以字节为单位),然后可以通过本地方法getFilePointer()定位当前支持的位置,如下public native void seek(long pos) throws IOException;//设置文件位置@b@ public native long getFilePointer() throws IOException;//读取文件位置

RandomAccessFile类有两个构成方法,如下/**@b@ *构造读写文件流实例@b@ * param name为目标文件位置@b@ * param model为操作模式,如何“r”、“rw”、“rws”或者"rwd"@b@ *  "r" 以只读方式打开,用法非法操作会抛出IOException@b@ *  "rw" 为读写方式,如不存在,将创建该文件或者@b@ *  "rws" 为读写方式,当文件内容或者元数据更新时,同步到物理文件@b@ *  "rwd"为读写方式,当文件内容更新时,同步到物理文件, I/O 操作数量更少,同步次数频率没有“rws”高,安全性稍低@b@*/@b@public RandomAccessFile(String name, String mode) throws FileNotFoundException;@b@public RandomAccessFile(File file, String mode) throws FileNotFoundException;

二、读写示例

读操作public void  testRead(){@b@@b@    RandomAccessFile raf=new RandomAccessFile("c:/test1.txt","r");@b@    raf.seek(0);//设置读取开始位置,字节为单位@b@    System.out.println((char)raf.read());//从开始位置向后读取第一个字节,并转换为字符打印@b@    System.out.println((char)raf.read());//从开始位置向后读取第二个字节@b@    raf.close();@b@}

写操作publc void testWrite(){@b@    RandomAccessFile raf=new RandomAccessFile("c:/test2.txt","rw");@b@    raf.seek(rf.lenght());//从指定文件末尾开始写入@b@    raf.writeByte( 1 );//在文件"test2.txt"末尾写入1@b@    raf.writeUTF("一");//在后面再写入中文"一"@b@    raf.close();@b@}

三、总结public class RandomAccessFile implements DataOutput, DataInput, Closeable {...}

RandomAccessFile同时实现了DataOutput和DataInput接口,因此它定义用来读写文件,是一种特殊的文件流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值