RandomAccessFile主要功能是随机读取,可以读取指定位置的内容,可以跳过指定的字节数读取
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流及File-RandomAccessFile对象.docx
主要介绍了Java中IO流 RandomAccessFile类实例详解的相关资料,需要的朋友可以参考下
该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用示例,旨在帮助理解和掌握Java中的输入输出操作。 包含: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、...
io-demo I / O in or out code 编码 file 学习 java.io.File 类 random-access-file 学习 RandomAccessFile i-o io流 包括file流,字节流 serialize-demo 深入学习 对象序列化与反序列化
java api中的java.io.RandomAccessFile类实现文件的随机写入.
1 JAVA SE 1.1 深入JAVA API 1.1.1 Lang包 1.1.2 集合类 1.1.2.1.1 日期类Date 1.1.2.1.2 日历类Calendar 1.1.2.1.3 随机数类Random 1.1.2.1.4 向量类Vector ...4.2 Java IO 包中的Decorator模式
IO 概述 File 类 IO 流分类 InputStream & Reader OutputStream & Writer RandomAccessFile 类 对象的序列化
Java IO五类一接口 文件操作类File、RandomAccessFile 字节输出流OutputStream、字节输入流InputStream 字符输出流Writer、字符输入流Reader 打印流、输入输出重定向 Scanner类 字符编码 序列化操作标识接口...
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream;...import java.io.RandomAccessFile;
Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...
RandomAccessFile classes along with streams (including object serialization and externalization) and writers/readers. Chapters 6 through 11 focus on NIO. You explore buffers, channels, selectors, ...
最近在用java的IO包下面的RandomAccessFile类读写中文文件时遇到了乱码问题,解决不了。于是索性自己写个类,可以进行中文文件读写而不乱码。 压缩包里提供了.jar包和源代码。1.2版本解决了前面版本读取文件速度慢的...
import java.io.RandomAccessFile; import java.io.FileOutputStream; import java.io.File; import java.io.IOException; import java.nio.channels.ClosedChannelException; /** * <p>Title: Socekt编程学习 * ...
031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203_【第12章:JAVA IO】_字节流与字符流笔记.pdf 031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf 031205_【第12章:JAVA IO】_内存操作流笔记.pdf ...
import java.io.RandomAccessFile; import java.net.*; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.util.logging.Level; import java.util.logging.Logger; import javax....
第12章 IO与串行化 2课时 了解Java IO 中类的层次结构,介绍Java IO采用的装饰器模式。 学会使用File,FileReader,BufferedReader,FileWriter,BufferedWriter,PrintWriter等类输入...
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...
java.io.RandomAccessFile --------------------------------------------------------------- // ***用来读写文件 //将一个文件看做是一个字节数组 //用下标值访问摸个位置的字节值 创建实例 -------------------...
因为使用其他文件流修改文件时是整体的替换,导致SVN上传上去后是整个文件都修改了,所以需要增量修改,这个demo是使用RandomAccessFile增量修改,只修改指定的行,很实用
文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来)。...import java.io.RandomAccessFile; import java.util.Scanner; public class Main { public static void main(String[] arg