Java小白的File学习笔记(二)——RandomAccessFile

Java小白学习笔记之二之RandomAccessFile

RandomAccessFile是Java提供的对文件内容的访问类,可以访问文件里的内容,而且既可以读文件,也可以写文件,还支持随机访问文件,即访问文件的任意位置。

打开文件的方式:"rw"读写方式;“r” 只读方式

//当创建一个RandomAccessFile对象时,不仅要指明打开哪个文件,而且要指明打开的方式
RandomAccessFile raf= new RandomAccessFile(file2, "rw");

RandomAccessFile里面包含一个文件指针,当打开文件时,pointer指向文件的开头,随着读写操作,指针后移。
1、写方法:

//现在开始进行操作
RandomAccessFile raf = new RandomAccessFile(file2, "rw");
System.out.println(raf.getFilePointer());
//write方法每次指挥写入一个字节
raf.write('A');//这是指挥写入A的后八位 
System.out.println(raf.getFilePointer());

int a = 0x7fffffff;
//因为write方法每次智能写一个字节,则若要把a写入,需写四次
raf.write(a>>>24);//移位操作,写入高八位
raf.write(a>>>16);
raf.write(a>>>8);
raf.write(a);
//用writeInt方法可一次写入
raf.writeInt(a);
System.out.println(raf.getFilePointer());

我们看一下运行结果:Java小白的File学习笔记(二)——RandomAccessFile_第1张图片
可能有些人就会有疑问了,根据代码,我们明明写了6raf.write,为什么最后会输出9呢?接下来我们看一下writeInt的源码Java小白的File学习笔记(二)——RandomAccessFile_第2张图片
然后你就会发现,其实writeInt方法就是把4次write方法封装起来,现在我们再来数一下,指针指向9就没错了把。
2、读文件
下面我们来看一下读文件是如何实现的。

//读文件:
//首先用seek方法使指针回到文件开头
raf.seek(0);
//一次性读取,存入到一个字节数组中
byte[] bs = new byte[(int)raf.length()]; 
raf.read(bs);
//输出字节数组
System.out.print(Arrays.toString(bs));

看一下运行结果:Java小白的File学习笔记(二)——RandomAccessFile_第3张图片
65为A,127,-1,-1,-1为0x7fffffff没有问题。
最后别忘记用.close方法关闭。

好了,这次笔记就到这里,满足o( ̄︶ ̄)o。

你可能感兴趣的:(Java小白的File学习笔记(二)——RandomAccessFile)