RandomAccessFile的使用方法和案例分析
来源:互联网 发布:死亡实验2001知乎 编辑:程序博客网 时间:2024/06/05 08:05
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.jar.Attributes.Name;
/*RandomAccessFile:该类不能算是io体系中子类,而是直接继承自object
* 但是它是io包中成员,因为它具有读和写的功能。内部封装了一个数组,而且通过指针对数组
* 的元素进行操作,可以通过getfilepointer获取指针位置
*
* 其实完成读写的原理就是内部封装了字节流输出流和输入流
* 通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式只读r读写rw等
* 如果模式为只读r,不会创建文件。会去读取一个已经存在文件,如果该文件不存在,则会出现异常
* 如果模式为rw而且该对象的构造函数要操作的文件不存在,会自动创建。如果存在会自动覆盖。
*
* 功能:可以实现数据的分段写入,可以写入,可以读取,可以修改,
*/
public class RandomAccessFileDemo {
public static void main(String[] args) {
try {
writeFile();
readFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//读的过程
public static void readFile() throws IOException{
RandomAccessFile raf=new RandomAccessFile("d:\\ran.txt", "r");
//调整对象中的指针
raf.seek(8);
//跳过指定的字节数,但是不能往回走,只能往后跳
raf.skipBytes(8);
//定义一个数组,每次读取4个字节
byte[]buf=new byte[4];
raf.read(buf);
String name=new String(buf);
int age=raf.readInt();//一次读取四个字节
System.out.println("name=\n"+name);
System.out.println("age=\n"+age );
raf.close();
}
//写入到指定位置,可以中间空着
public static void writeFile2() throws IOException{
RandomAccessFile raf=new RandomAccessFile("d:\\ran.txt", "rw");
raf.seek(8*3);
raf.write("zhouqi".getBytes());
raf.writeInt(103);
}
//写的过程
public static void writeFile() throws IOException{
RandomAccessFile raf=new RandomAccessFile("d:\\ran.txt", "rw");
raf.write("lisi".getBytes());
raf.write(97);
raf.write("zhangsan".getBytes());
raf.write(98);
raf.close();
}
}
0 0
- RandomAccessFile的使用方法和案例分析
- 结点node的使用方法和案例分析
- RandomAccessFile的使用方法
- 关于正则表达式的解释和使用方法以及案例分析
- TreeSet的使用方法和案例详解
- RandomAccessFile和File的区别
- java RandomAccessFile类的使用案例(压缩包复制)
- 线程的创建同步退出案例和使用方法
- Fragment的详细介绍和使用方法及案例
- Android程序:进度条(ProgressBar)的使用方法和案例
- LinkedList的使用方法和案例详解,以及注意事项
- readLine方法的原理和案例分析
- Properties的用法和案例分析
- CountDownLatch的使用方法和应用场景分析
- RandomAccessFile实现文件的读入和写入
- 关于File和RandomAccessFile的总结
- RandomAccessFile 源码分析
- 黑马程序员---Java 编码解码的案例及特殊类RandomAccessFile
- IOS中如何在多层界面之间显示与隐藏标签栏(UITabBar)
- org.hibernate.HibernateException: createSQLQuery is not valid without active transaction
- AndroidStudio .gitignore忽略文件
- Appium对于xpath 查找元素慢的原因
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- RandomAccessFile的使用方法和案例分析
- 反编译的常用工具与使用方法
- hive简介
- Ireport Error retrieving field value from bean : ate045
- Java——DOM4J方式生成XML
- viewpage的应用实例
- 配置phpmyadmin使登录时可填写IP管理多台MySQL
- [习惯统计:桌面]遇到的问题&反省(1)
- 流的特殊用法之管道流的使用方法案例