RandomAccessFile的文件读写与seek()的用法

来源:互联网 发布:电路模拟软件 编辑:程序博客网 时间:2024/05/20 08:01
  1. /** 
  2.  * RandomAccessFile的特点在于任意访问文件的任意位置,可以说是基于字节访问的,可通过getFilePointer()获取当前指针所在位置, 
  3.  * 可通过seek()移动指针,这体现了它的任意性,也是其与其他I/O流相比,自成一派的原因 
  4.  *  
  5.  * 一句话总结:seek用于设置文件指针位置,设置后ras会从当前指针的下一位读取到或写入到 
  6.  * @author Administrator 
  7.  * 

  1.  */  
    1. public class My {  
    2.     public static void main(String[] args) {  
    3.           
    4.         try {  
    5.             File file=new File("hh.txt");//创建一个txt文件内容是123456789  
    6.             RandomAccessFile ras=new RandomAccessFile(file, "rw");  
    7.             //默认情况下ras的指针为0,即从第1个字节读写到  
    8.             ras.seek(1);//将ras的指针设置到8,则读写ras是从第9个字节读写到  
    9.             File file2=new File("pp.txt");  
    10.             RandomAccessFile ras2=new RandomAccessFile(file2, "rw");  
    11.             ras2.setLength(10);  
    12.             ras2.seek(5);  
    13.             byte[] buffer=new byte[32];  
    14.             int len=0;  
    15.             while((len=ras.read(buffer))!=-1){  
    16.                 ras2.write(buffer, 0, len);//从ras2的第6个字节被写入,因为前面设置ras2的指针为5  
    17.                 //ras2的写入结果是:pp.txt的内容为前5位是空格,第6位是9  
    18.                 //待写入的位置如果有内容将会被新写入的内容替换  
    19.             }  
    20.             ras.close();  
    21.             ras2.close();  
    22.             System.out.println("ok");  
    23.         } catch (Exception e) {  
    24.             // TODO Auto-generated catch block  
    25.             e.printStackTrace();  
    26.         }  
    27.     }  
    28. }  

原创粉丝点击