package?com.imooc.io;
import?java.io.File;
import?java.io.IOException;
import?java.io.RandomAccessFile;
import?java.util.Arrays;
public?class?RafDemo?{
????public?static?void?main(String[]?args)?throws?IOException{
????????File?demo?=new?File("demo");
????????if(!demo.exists())
????????????demo.mkdir();
????????File?file?=new?File(demo,"raf.dat");
????????if(!file.exists())
????????????file.createNewFile();
????????
????????RandomAccessFile?raf=new?RandomAccessFile(file,?"rw");
????????//指針的位置
????????System.out.println(raf.getFilePointer());
????????
????????raf.write('A');
????????System.out.println(raf.getFilePointer());
????????raf.write('B');
????????
????????int?i=0x7fffffff;
????????//用write方法每次只能寫一個字節(jié),如果要把i寫進去就得寫4次
????????raf.write(i>>>24);//高八位
????????raf.write(i>>>16);
????????raf.write(i>>>8);
????????raf.write(i);
????????System.out.println(raf.getFilePointer());
????????
????????//可以直接寫一個int
????????raf.writeInt(i);
????????
????????String?s="中";
????????byte[]?gbk=s.getBytes("gbk");
????????raf.write(gbk);
????????System.out.println(raf.length());
????????
????????
????????//讀文件,必須把指針移到頭部
????????raf.seek(0);
????????//一次性讀取,把文件中的內(nèi)容都讀到字節(jié)數(shù)組
????????byte[]?buf=new?byte[(int)raf.length()];
????????raf.write(buf);
????????System.out.println(Arrays.toString(buf));
????????
????????
????????
????}
}
添加回答
舉報
0/150
提交
取消