IO流 RandomAccessFile
2016-01-24 16:41
411 查看
package com.yyq; import java.io.*; /* * RandomAccessFile * 该类不算是IO体系中的子类 * 而是直接继承自Object * 但是他是Io包中的成员,因为它具备读和写的功能 * 内部封装了一个数组,而且通过指针对数组的元素进行操作 * 可以通过getFilePointer获取指针位置 * 同时可以通过seek改变指针的位置 * * 其实完成读写的原理就是内部封装了字节输入流和输出流 * 通过构造函数可以看出:该类只能操作文件,而且操作文件还有模式 * 如果该对象的构造函数要操作的文件不存在,会自动创建,如果存在则不会覆盖 * * 如果模式为只读r 不会创建文件,回去读取一个已存在文件, * 如果该文件不存在,则会出现异常 * 如果模式为rw,操作的文件不存在,会自动创建,如果存在则不会覆盖 * 它可以实现数据的分段往里写入数据。 * */ public class RandomAccessFileDemo { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub writeFile(); //readFile(); } public static void readFile() throws IOException{ RandomAccessFile raf = new RandomAccessFile("ran.txt","r"); // 调整对象中的指针 // 跳过多少个字节来取,跳过指定的字节数 raf.seek(0); // 可以往下跳,但是不能往回跳 raf.skipBytes(1); byte[] buf = new byte[4]; raf.read(buf); String name = new String(buf); //int age = raf.readInt(); System.out.println(name); } // RandomAccessFile 可以随机写 public static void writeFile_2() throws IOException{ RandomAccessFile raf = new RandomAccessFile("ran.txt","rw"); raf.write("lisi".getBytes()); //wirte 方法 只能显示 后8位 raf.writeInt(258); raf.close(); } public static void writeFile() throws IOException{ RandomAccessFile raf = new RandomAccessFile("ran.txt","rw"); raf.seek(8*4); raf.write("aaa".getBytes()); //wirte 方法 只能显示 后8位 raf.writeInt(258); raf.close(); } }
相关文章推荐
- 分布式技术一周技术动态 2016.01.24
- Codeforces Round #340 (Div. 2)(A) 模拟
- js的作用域链(1)
- LA 4329
- HDU 4691 代码(线段树+后缀数组)
- PHP导出Excel实例讲解
- 【MySQL】InnoDB日志机制深入分析
- vsftpd的安装配置及lftp命令的使用
- hadoop - hadoop2.6 分布式 - 集群环境搭建 - JDK安装配置和SSH安装配置与免密码登陆(集群中)
- 解决小米平板 adb devices no permissions ,无法链接adb 问题
- 实现ASCII码字符集到Unicode字符集之间的转换
- NuGet 发布
- NuGet 发布
- hdu1847 Good Luck in CET-4 Everybody!
- 迅雷高速通道无限使用破解教程
- 动态分配二维数组指针
- 排排站
- LFS Test Server搭建
- iOS从通讯录中选择联系人
- set方法内存分析(2)