Java IO——RandomAccessFile
2016-03-08 21:48
375 查看
/** * Created by LiuHuiChao on 2016/3/8. * * 使用RandomAccessFile对文件进行读写操作 */ public class TestRandomAccessFile { /*RandomAccessFile是java提供的对文件内容的访问类 * 既可以读文件,也可以写文件 * 而且这个类可以随机访问文件,可以访问文件的 任意位置 * * java文件模型 * 1,在硬盘上的是byte byte byte存储的,是数据的集合 * 2,打开文件有两种模式 * rw:读写 * r:只读 * RandomAccessFile raf=new RandomAccessFile(file,"rw"); * 文件指针,打开文件时候,指针在开头 pointer=0; * 写方法:raf.write(int):只能写一个字节 * 读方法:raf.read():读一个字节 * 文件读写完成之后一定要关闭 * */ public static void main(String[] args) throws IOException{ File demo=new File("H:"+File.separator+"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'); System.out.println(raf.getFilePointer()); int i=0x7fffffff; //用write方法每次只能写一个字节 //如果要把i写进去,要写四次 raf.write(i>>>24);//高8位写入 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.getFilePointer()); //读文件必须把指针移到头部 raf.seek(0); //一次性读取,把文件中内容都读取到字节数组中 byte[] buf=new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); String str1=new String(buf,"gbk"); System.out.println(str1); for (byte b:buf){ System.out.println(Integer.toHexString(b & 0xff)+" "); } raf.close(); } }
相关文章推荐
- JAVA回调函数
- leetcode:Median of Two Sorted Arrays 【Java】
- Java内存管理
- Java内存管理
- Java内存管理
- Java内存管理
- java实现二叉树创建和遍历
- java中的字符串简介,字符串的优化以及如何高效率的使用字符串
- MyBatis分页的拓展--合并高级查询
- AAA【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Java SE】————数据类型及其转换
- java——MD5加密
- 在三大框架里运用lucene和ik分词是报java.lang.reflect.InvocationTargetException异常的解决方法
- Java单例模式
- 入住CSDN
- eclipse安装ADT后不显示插件的小问题
- leetcode:Ugly Number II 【Java】
- Java 包装类
- Java JNI Demo
- Java设计模式之简单工厂模式