java RandomAccessFile 类

java RandomAccessFile 类RandomAccess 类是 Java 语言中功能最为丰富的文件访问类 它提供了众多的文件访问方法 RandomAccess 类支持 随机访问 方式 可以跳转到文件的任意位置处读写数据 在要访问一个文件的时候 不想把文件从头读到尾 而是希望像访问一个数据库一样地访问一个文本文件 这时 使用 RandomAccess 类就是最佳选择 RandomAccess 对象类

RandomAccessFile 类

是Java语言中功能最为丰富的文件访问类,它提供了众多的文件访问方法。RandomAccessFile 类支持“随机访问”方式,可以跳转到文件的任意位置处读写数据。在要访问一个文件的时候,不想把文件从头读到尾,而是希望像访问一个数据库一样地访问一个文本文件,这时,使用RandomAccessFile类就是最佳选择。

RandomAccessFile 对象类有个位置指示器,指向当前读写处的位置,当读写n个字节后,文件指示器将指向这n个字节后的下一个字节处。刚打开文件时,文件指示器指向文件的开头处,可以移动文件指示器到新的位置,随后的读写操作将从新的位置开始。RandomAccessFile在数据等长记录格式文件的随机(相对顺序而言)读取时有很大的优势,但该类仅限于操作文件,不能访问其它的IO 设备,如网络、内存映像等。

以读写的方式打开一个文件时,如果文件不存在,程序会自动创建此文件。

RandomAccessFile类中的常用方法:
                                
  void close();             关闭此随机访问文件流并释放与该流关联的所有系统资源。           
  long getFilePointer();   返回此文件中的当前偏移量。                        
  long length();           返回此文件的长度。                            
  read函数集                   从文件读                                 
  void seek(long pos);     设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
  int skipBytes(int n)     尝试跳过输入的 n 个字节以丢弃跳过的字节。               
  write函数集                 往文件写                                 
  setLength(long newLength) 设置文件大小(设置临时文件)                       

 RandomAccessFile 类的构造方法

1. new RandomAccessFile(f, “rw”); // 读写方式
2. new RandomAccessFile(f, “r”);   // 只读方式

向文件中记忆写入数据












































 File file = new File("accessFile"); RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 以下向 raf 文件中写数据 raf.writeInt(20);// 占4个字节 raf.writeDouble(8.);// 占8个字节 raf.writeShort(395);// 占2个字节 raf.writeUTF("这是一个UTF字符串");// 这个长度写在当前字符串指针的前两个字节处,可用readShort()读取 raf.writeBoolean(true);// 占1个字节 raf.writeLong(l);// 占8个字节 raf.writeUTF("又是一个UTF字符串哈哈"); raf.writeFloat(35.5f);// 占4个字节 raf.writeChar('a');// 占2个字节 raf.close();

从文件中读取随机记忆的文件内容

 File file = new File("accessFile"); RandomAccessFile raf = new RandomAccessFile(file, "rw"); System.out.println(raf.readInt());//读取Int数据,指针会往后移动4字节 System.out.println(raf.readDouble());//读取Double数据,指针会往后移动8字节 System.out.println(raf.readUTF());//读取字符串,指针会移到该字符串后 raf.skipBytes(3);//跳过3个字节,也就是跳过上面例子的 boolen 和 short 值。 System.out.println(raf.readLong());//读取long值 short readShort = raf.readShort();//读取字符串的长度 System.out.println("目前指针处的字符串长度为=" + readShort); raf.skipBytes(readShort);//跳过该字符串 System.out.println(raf.readFloat());//读取float值 System.out.println(raf.readChar());//读取char值 //long length = raf.length(); //System.out.println("文件的总字节数为:"+length); //long filePointer = raf.getFilePointer();//当前指针的位置,定位到哪个字节了。 //System.out.println("目前字节指针定位在:"+filePointer); //raf.seek(4);//直接定位到第4个字节处。 









版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220336.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:44
下一篇 2026年3月17日 下午8:44


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号