`

Java IO-RandomAccessFile

    博客分类:
  • J2SE
阅读更多
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流及File-RandomAccessFile对象.docx

    Java中IO流 RandomAccessFile类实例详解

    主要介绍了Java中IO流 RandomAccessFile类实例详解的相关资料,需要的朋友可以参考下

    Java的IO流讲解代码: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型

    该代码源码资源是一个用于讲解Java IO流的示例代码库。它包含了常见的IO类和方法的使用示例,旨在帮助理解和掌握Java中的输入输出操作。 包含: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、...

    io-demo:学习IO

    io-demo I / O in or out code 编码 file 学习 java.io.File 类 random-access-file 学习 RandomAccessFile i-o io流 包括file流,字节流 serialize-demo 深入学习 对象序列化与反序列化

    RandomAccessFile的用法

    java api中的java.io.RandomAccessFile类实现文件的随机写入.

    (超赞)JAVA精华之--深入JAVA API

    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模式

    10.尚硅谷_java基础_IO

    IO 概述 File 类 IO 流分类 InputStream & Reader OutputStream & Writer RandomAccessFile 类 对象的序列化

    Java IO期末复习||五类一接口

    Java IO五类一接口 文件操作类File、RandomAccessFile 字节输出流OutputStream、字节输入流InputStream 字符输出流Writer、字符输入流Reader 打印流、输入输出重定向 Scanner类 字符编码 序列化操作标识接口...

    ReadWriteTxt.java

    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 IO, NIO and NIO.2(Apress,2015)

    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 ...

    Java IO, NIO and NIO.2 原版pdf by Friesen

    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中文文件读写API及源码 V1.3

    最近在用java的IO包下面的RandomAccessFile类读写中文文件时遇到了乱码问题,解决不了。于是索性自己写个类,可以进行中文文件读写而不乱码。 压缩包里提供了.jar包和源代码。1.2版本解决了前面版本读取文件速度慢的...

    Java网络编程-Socket-文件传输小案例

    import java.io.RandomAccessFile; import java.io.FileOutputStream; import java.io.File; import java.io.IOException; import java.nio.channels.ClosedChannelException; /** * &lt;p&gt;Title: Socekt编程学习 * ...

    Java开发详解.zip

    031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203_【第12章:JAVA IO】_字节流与字符流笔记.pdf 031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf 031205_【第12章:JAVA IO】_内存操作流笔记.pdf ...

    java 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....

    AIC的Java课程1-6章

    第12章 IO与串行化 2课时  了解Java IO 中类的层次结构,介绍Java IO采用的装饰器模式。  学会使用File,FileReader,BufferedReader,FileWriter,BufferedWriter,PrintWriter等类输入...

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    IO输入输出留

    java.io.RandomAccessFile --------------------------------------------------------------- // ***用来读写文件 //将一个文件看做是一个字节数组 //用下标值访问摸个位置的字节值 创建实例 -------------------...

    使用RandomAccessFile递归修改文件

    因为使用其他文件流修改文件时是整体的替换,导致SVN上传上去后是整个文件都修改了,所以需要增量修改,这个demo是使用RandomAccessFile增量修改,只修改指定的行,很实用

    Java实现文件分割和文件合并实例

    文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来)。...import java.io.RandomAccessFile; import java.util.Scanner; public class Main { public static void main(String[] arg

Global site tag (gtag.js) - Google Analytics