概述
---------------------- android培训、java培训、期待与您交流! ----------------------
学了很多的io包中的类之后,终于碰到了一个比较猛的类RandomAccessFile类,该类实现的文件的随机读写,有很多的方法可以使用,非常的方便,不过还是有其局限性——只能操作文件对象:RandomAccessFile(String name, String mode),string name,是文件名,而mode就有好几种形式:"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出IOException。 "rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。 "rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。 "rwd" 打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。 比较常用的是“r”,“rw”。当为模式r:该类的构造函数要读取的文件必须存在,不会自动创建,否则报异常。当为模式rw:该类的构造函数要操作的文件不存在,则会自动创建,如存在,则不覆盖。示例代码如下:
import java.io.*;
public class RandomAccessFileDemo { public static void main(String []args)throws IOException
{//ReadFile();
//WriteFile();
//System.out.println(Integer.toBinaryString(258));
WriteFile_1();
}
public static void WriteFile()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
raf.write("李四".getBytes());raf.writeInt(97);
raf.write("王五".getBytes());raf.writeInt(99);raf.close();
}
public static void ReadFile()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");//调整指针
//raf.seek(8*1);//跳过指定的字节数,但是不能往回跳
raf.skipBytes(8);byte[]buf=new byte[4];raf.read(buf);
String name=new String(buf);int age=raf.readInt();System.out.println("name="+name);
System.out.println("age="+age);raf.close();
}
public static void WriteFile_1()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
raf.seek(8*0);raf.write("周期".getBytes());raf.writeInt(103);raf.close();}
}
RandomAccessFile()类中封装了一个大型的Bytes[]数组,文件中的数据访问和存储是通过指针完成的,我们可以通过getFilePointer()方法找到指针或者使用seek()方法设置指针的值。
----------------------android培训、java培训、期待与您交流! ----------------------
最后
以上就是怕孤单硬币为你收集整理的黑马程序员_RandomAccessFile 类的全部内容,希望文章能够帮你解决黑马程序员_RandomAccessFile 类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复