Java基础巩固系列 RandomAccessFile(随机访问文件)
2019-04-06 00:03
337 查看
代码示例:
[code]/* * RandomAccessFile:支持随机访问 * 1.既可以充当一个输入流,又可以充当一个输出流 * 2.支持从文件的开头读取、写入 * 3.支持从任意位置的读取、写入(插入) * */ public class TestRandomAccessFile { //相较于test3,更通用 @Test public void test4() { RandomAccessFile raf = null; try { raf = new RandomAccessFile(new File("hello1.txt"), "rw"); raf.seek(4); byte[] b = new byte[10]; int len; StringBuffer sb = new StringBuffer(); while ((len = raf.read(b)) != -1) { sb.append(new String(b, 0, len)); } raf.seek(4); raf.write("xy".getBytes()); raf.write(sb.toString().getBytes()); } catch (IOException e) { e.printStackTrace(); } finally { if (raf != null) { try { raf.close(); } catch (IOException e) { e.printStackTrace(); } } } } //实现插入的效果,在d字符后面插入“xy”但多行的文本不太适用会把换行符“吃”了 @Test public void test3() { RandomAccessFile raf = null; try { raf = new RandomAccessFile(new File("hello1.txt"), "rw"); raf.seek(4); String str = raf.readLine(); //efg123456 // long l = raf.getFilePointer(); // System.out.println(l); raf.seek(4); raf.write("xy".getBytes()); raf.write(str.getBytes()); } catch (IOException e) { e.printStackTrace(); } finally { if (raf != null) { try { raf.close(); } catch (IOException e) { e.printStackTrace(); } } } } //实现的实际上是覆盖的效果 @Test public void test2() { RandomAccessFile raf = null; try { raf = new RandomAccessFile(new File("hello1.txt"), "rw"); raf.seek(4); raf.write("xy".getBytes()); } catch (IOException e) { e.printStackTrace(); } finally { if (raf != null) { try { raf.close(); } catch (IOException e) { e.printStackTrace(); } } } } //进行文件的读、写 @Test public void test1() { RandomAccessFile raf1 = null; RandomAccessFile raf2 = null; try { raf1 = new RandomAccessFile(new File("hello.txt"), "r"); raf2 = new RandomAccessFile(new File("hello1.txt"), "rw"); byte[] b = new byte[20]; int len; while ((len = raf1.read(b)) != -1) { raf2.write(b, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { if (raf2 != null) { try { raf2.close(); } catch (IOException e) { e.printStackTrace(); } } if (raf1 != null) { try { raf1.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
相关文章推荐
- Java之RandomAccessFile(随机访问文件)
- 系统学习 Java IO (四)----文件的读写和随机访问 FileInputStream/FileOutputStream & RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- [Java核心API]IO流--随机访问文件RandomAccessFile
- java 管道流PipedInputStream,PipedInputStream和随机访问文件 RandomAccessFile
- Java 文件随机访问类-RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- 【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile
- Java之文件的随机访问和读写RandomAccessFile
- Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile
- java:RandomAccessFile(随机读写文件)
- 随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
- java 随机访问 RandomAccessFile
- RandomAccessFile随机访问文件
- Java IO RandomAccessFile随机读写文件用法
- Java RandomAccessFile随机访问类
- 随机访问文件的读取和写入对象:RandomAccessFileDemo
- 随机访问文件RandomAccessFile 与 内存映射文件MappedByteBuffer
- java基础-RandomAccessFil(随机访问)
- java io 笔记一:RandomAccessFile(随机访问) 类