Java IO-RandomAccessFile
2011-11-21 10:30
513 查看
RandomAccessFile主要功能是随机读取,可以读取指定位置的内容,可以跳过指定的字节数读取
Java代码
package com.zzh.io;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileDemo {
/**
* RandomAccessFile主要功能是随机读取,可以读取指定位置的内容,可以跳过指定的字节数读取
*/
public static void main(String[] args) throws IOException {
testWrite();
testRead();
}
private static void testWrite() throws IOException {
File file = new File("D:" + File.separator + "test.txt");
//RandomAccessFile的构造函数的第1个参数表示文件,
//第2个参数表示文件打开的模式,常用有3种:r,w,rw
//rw:如果文件不存在,会自动创建
RandomAccessFile raf = new RandomAccessFile(file, "rw");
String name = null;
int age = 0;
name = "zhangsan";
age = 18;
raf.writeBytes(name);
raf.writeInt(age);
name = "lisi ";//这里要补全空格,使字符串为8位,否则读取时会出错
age = 19;
raf.writeBytes(name);
raf.writeInt(age);
name = "wangwu ";//这里要补全空格,使字符串为8位,否则读取时会出错
age = 20;
raf.writeBytes(name);
raf.writeInt(age);
raf.close();//关闭资源文件,切记!
}
private static void testRead() throws IOException {
File file = new File("D:" + File.separator + "test.txt");
RandomAccessFile raf = new RandomAccessFile(file, "r");
String name = null;
int age = 0;
byte[] b = new byte[8];
raf.skipBytes(12);//跳过第一个人的12个字节,读第二个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第二个人的姓名:" + name + ", 年龄:" + age);
raf.seek(0);//将指针定位回文件开始处,读第一个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第一个人的姓名:" + name + ", 年龄:" + age);
raf.seek(24);//将指针定位到第三个人处,读第三个人的信息
// raf.skipBytes(12);//空出第二个人的信息,读第三个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第三个人的姓名:" + name + ", 年龄:" + age);
raf.close();//关闭资源文件,切记!
}
}
Java代码
package com.zzh.io;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileDemo {
/**
* RandomAccessFile主要功能是随机读取,可以读取指定位置的内容,可以跳过指定的字节数读取
*/
public static void main(String[] args) throws IOException {
testWrite();
testRead();
}
private static void testWrite() throws IOException {
File file = new File("D:" + File.separator + "test.txt");
//RandomAccessFile的构造函数的第1个参数表示文件,
//第2个参数表示文件打开的模式,常用有3种:r,w,rw
//rw:如果文件不存在,会自动创建
RandomAccessFile raf = new RandomAccessFile(file, "rw");
String name = null;
int age = 0;
name = "zhangsan";
age = 18;
raf.writeBytes(name);
raf.writeInt(age);
name = "lisi ";//这里要补全空格,使字符串为8位,否则读取时会出错
age = 19;
raf.writeBytes(name);
raf.writeInt(age);
name = "wangwu ";//这里要补全空格,使字符串为8位,否则读取时会出错
age = 20;
raf.writeBytes(name);
raf.writeInt(age);
raf.close();//关闭资源文件,切记!
}
private static void testRead() throws IOException {
File file = new File("D:" + File.separator + "test.txt");
RandomAccessFile raf = new RandomAccessFile(file, "r");
String name = null;
int age = 0;
byte[] b = new byte[8];
raf.skipBytes(12);//跳过第一个人的12个字节,读第二个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第二个人的姓名:" + name + ", 年龄:" + age);
raf.seek(0);//将指针定位回文件开始处,读第一个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第一个人的姓名:" + name + ", 年龄:" + age);
raf.seek(24);//将指针定位到第三个人处,读第三个人的信息
// raf.skipBytes(12);//空出第二个人的信息,读第三个人的信息
for (int i = 0; i < b.length; i++) {
b[i] = raf.readByte();//读取一个字节
}
name = new String(b);
age = raf.readInt();
System.out.println("第三个人的姓名:" + name + ", 年龄:" + age);
raf.close();//关闭资源文件,切记!
}
}
相关文章推荐
- Java IO的RandomAccessFile的使用
- RandomAccessFile创建文件java.io.FileNotFoundException
- Java IO深入理解读写文件(FileInputStream、FileOutputStream、FileReader、FileWriter、RandomAccessFile)
- Java IO的RandomAccessFile的使用
- Java IO: RandomAccessFile
- JAVA高级视频_IO输入与输出02、03 RandomAccessFile 学习笔记
- Java IO2:RandomAccessFile
- java io 笔记一:RandomAccessFile(随机访问) 类
- Java IO _RandomAccessFile 类
- 【Java-IO】RandomAccessFile
- java io 笔记一:RandomAccessFile(随机访问) 类
- java.io.RandomAccessFile
- Java IO的RandomAccessFile的使用
- java io系列26之 RandomAccessFile
- Java IO笔记(3)RandomAccessFile
- Java-IO(二)——RandomAccessFile
- java.io.RandomAccessFile
- 【JAVA IO】_RandomAccessFile笔记
- Java基础--IO-RandomAccessFile/ObjectOutputStream
- Java IO 之 RandomAccessFile 操作文件内容