类 RandomAccessFile 在文件任意位置进行读写

public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable

此类同时实现了DataOutput和DataInput接口,此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过 getFilePointer()方法读取,并通过 seek() 方法设置。

通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException(是一种 IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException,而不是 EOFException。需要特别指出的是,如果流已被关闭,则可能抛出 IOException

两个构造方法

public RandomAccessFile(String name,String mode) throws FileNotFoundException
public RandomAccessFile(File file, String mode) throws FileNotFoundException

mode 参数指定用以打开文件的访问模式。允许的值及其含意为:



含意

"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException
"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
"rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
"rwd"   打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。 

"rwd" 模式可用于减少执行的 I/O 操作数量。使用 "rwd" 仅要求更新要写入存储的文件的内容;使用 "rws" 要求更新要写入的文件内容及其元数据,这通常要求至少一个以上的低级别 I/O 操作。

import java.io.IOException;
import java.io.RandomAccessFile;

public class WriteTest {
    public static void main(String[] args) throws IOException {
        write();
        read();
    }

    private static void write() throws IOException{
        RandomAccessFile rf = new RandomAccessFile("c:\\save.txt","rw");
        rf.writeByte(‘1‘);
        rf.writeChars("android");
        rf.writeUTF("博客园");
        rf.close();
    }

    private static void read() throws IOException{
        RandomAccessFile rf = new RandomAccessFile("c:\\save.txt","r");
        //可指定读取位置
        rf.seek(2);
        System.out.println((char)rf.read());
        rf.close();
    }
}

通过RandomAccessFile类可以以追加的方式写文件。


类 RandomAccessFile 在文件任意位置进行读写

时间: 2024-08-01 11:45:48

类 RandomAccessFile 在文件任意位置进行读写的相关文章

利用RandomAccessFile类在指定文件指定位置插入内容

package File; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; /*利用RandomAccessFile类在指定文件指定位置插入内容.*/ public class InsertContent { public static void ins

读取文件任意位置的内容——RandomAccessFile

http://www.cnblogs.com/Sunw/p/3801145.html http://www.cnblogs.com/dukc/p/4776868.html http://www.cnblogs.com/zhujiabin/p/5660541.html 总结: 1.构造方法:RandomAccessFile有两个构造方法 (1) RandomAccessFile(File file, String mode) (2) RandomAccessFile(String filepath

JavaSE-note1-随机访问类RandomAccessFile

1.Assic码表0      1     2    3 4 5 6 7 8    9 48    49   50   ......  57 2.“==”意思是:对象的值 && 存储地址 ,二者完全一致. 3.输入流FileInputStream 输出力FileOutputStream   //对磁盘文件        顺序读写 4. 随机访问类RandomAccessFile   //对文件实现  随机读写 RandomAccessFile src = new RandomAccessF

Java IO RandomAccessFile 任意位置读/写

随机读写类 RandomAccessFile的唯一父类是Object,与其他流父类不同.是用来访问那些保存数据记录的文件的,这样你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的. RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系

每日问题之改变类文件的位置后,代码运行不成功

将类文件改变位置以后,可能遇到代码编译不成功,显示找不到文件的路径. 这是因为当前文件的路径虽然改变了,但是文件的命名空间还没有改变,需要手动更改.

文件内容操作类-RandomAccessFile

package randomaccessfile.cn; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; /*类 RandomAccessFile * File 是对文件的操作,而 RandomAccessFile是对文件内容的操作 * 此类的实例支持对随机访问文件的读取和写入 * 常用的构造方法: * R

java基础知识回顾之javaIO类--RandomAccessFile类

java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部分装了一个字节数组,通过指针可以操作数组中的元素.4.其实该对象就是将字节输入流和输出流进行了封装.5.该对象只能对文件操作,目的和源只能是文件对象.通过看构造方法可以看得出来.RandomAccessFile(File file, String mode) RandomAccessFile(Str

(十七)Android获取其他包的Context和在任意位置获取应用程序Context(转载http://blog.sina.com.cn/s/blog_46726d240100usn9.html)

1.在任意位置获取应用程序Context Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context;喜欢编程的人都知道,编写工具类可以有效的实现代码复用,而在Android下某些工具类的编写很让人困惑,例如:我们要在工具类中获取SharedPreferences,那就需要Context的支持. 为了解决这写由Context带来的麻烦,我们可以自定义一个Application类来

如何查找网站漏洞文件任意查看漏洞详情与利用

在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等. 我们SINE安全公司在对gitea开源程序代码进行网站安全检测的时候发现存在网站文件任意查看漏洞,没有授权的任意一个用户的账号都可以越权创建gitea的lfs对象,这个对象通俗来讲就是可以利用gitea