java Io RandomAccessFile类 笔记
2016-03-31 11:25
453 查看
/** * Io流 * * RandomAccessFile类 随机 随机访问文件 --- 程序可以跳 到文件的任意位置 来读、写文件 。 * @author Administrator * */ public class TestRandomAccessFile { /** * 利用 randomAccessFile类 实现 从文本文件的 任意位置 插入内容 的操作。 */ @Test public void testRandomAccessFie1(){ RandomAccessFile raf=null; try { raf = new RandomAccessFile(new File("random1.txt"),"rw"); // 实现文件内容的插入操作 : // 1、把指针移动到 要修改的的位置 raf.seek(4); // 2、从指针位置开始把后面的内容读取到字符串中, byte[] b = new byte[20]; int len; StringBuffer sb = new StringBuffer(); while((len = raf.read(b))!=-1){ sb.append(new String(b,0,len)); } // 循环读取完成之后把指针重新指到要插入的位置 。 raf.seek(4); // 3、在 指针位置开始 插入内容 raf.write("insert something ".getBytes()); // 4、把读取到字符串的内容重新写回来 。实现在 文件中 任意位置插入。 raf.write(sb.toString().getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(raf !=null){ try { raf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 修改 替换 从 指定任意位置 到 指定任意位置+N的 内容 */ @Test public void testRandomAccessFie(){ RandomAccessFile raf=null; try { raf = new RandomAccessFile(new File("random1.txt"),"rw"); // 把指针移动到 要修改的的位置 ,从 第4个元素开始到第7个元素 替换成 ssb raf.seek(4); raf.write("ssb".getBytes()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(raf !=null){ try { raf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * * 利用 RandomAccessFile 随机访问文件类 实现 文件的 读取 ,实现文件的写入 。 最终实现文件的复制 。 */ @Test public void testRadomAccessFile(){ // "r"--只读 "rw" --读写 RandomAccessFile raf=null; RandomAccessFile raf1=null; try { raf = new RandomAccessFile(new File("random.txt"),"r"); raf1 = new RandomAccessFile(new File("random1.txt"),"rw"); byte[] b = new byte[20]; int len; while((len = raf.read(b))!=-1){ raf1.write(b, 0, len); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } finally{ if(raf1!=null){ try { raf1.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(raf!=null){ try { raf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
相关文章推荐
- Java第一阶段总结
- Java中String类(字符串操作)的10个常见问题和解决方法
- java Io reader writer 笔记3
- JAVA中的字符串小结
- java Io File类 笔记
- java IO流 笔记1
- java Io 笔记2
- Struts2简单登陆实例
- 感悟:Java的多线程跟Java的类系统之间的关系
- java插入排序
- Java RMI 入门指南
- java23中设计模式——行为模式——Memento(备忘机制)
- Spring Security 整合 UM Editor遇到的问题
- eclipse cdt launch failed
- java se 集合 笔记
- 在Java中如何遍历Map对象
- | Error Error initializing classpath: Unable to start the daemon process.
- 统计大串中小串出现的次数 *举例:在字符串”woaijavawozhenaijavawozhendeaijavawozhendehenai
- Java实现颜色渐变效果
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载