`

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-NIO 详解

    ### JAVA IO-NIO 详解 #### 一、IO与NIO概述 在Java开发中,输入/输出(IO)操作是程序与外部环境交互的重要环节。通过IO操作,程序可以读取外部数据或向外部环境输出数据。Java的IO体系自Java 1.0以来就一直存在...

    commons-io-2.8.0-bin.zip

    Apache Commons IO 是一个Java库,提供了大量的实用工具类来处理输入/输出操作。这个压缩包“commons-io-2.8.0-bin.zip”包含了Apache Commons IO库的版本2.8.0,这是一个广泛使用的库,尤其对于那些在Java环境中...

    java基础——IO流及File-RandomAccessFile对象.docx

    ### Java基础——IO流及File、RandomAccessFile对象 #### IO流概述 在Java中,IO流主要用于处理设备上的数据,这里的“流”可以被理解为数据的流动过程,即数据从一个地方移动到另一个地方的过程。Java中的IO流通过...

    java全栈工程师-java io

    ### Java IO概述 Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础模块之一。IO操作是任何程序的重要组成部分,因为几乎所有应用程序都需要读取或写入数据。Java IO提供了丰富的类和接口来处理...

    北大Java--IO

    - Java的`RandomAccessFile`类允许对文件进行随机读写操作,不仅可以按顺序读写,还能直接定位到文件的任意位置。 5. **对象流** - `ObjectInputStream`和`ObjectOutputStream`实现了对象的序列化和反序列化,...

    Java中IO流 RandomAccessFile类实例详解

    Java中IO流 RandomAccessFile类实例详解 Java中的IO流 RandomAccessFile类实例详解是Java中IO流的重要组成部分。RandomAccessFile类提供了对文件内容的访问,既可以读文件,也可以写文件。同时,RandomAccessFile类...

    java-IO.rar_io_java IO

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,使得开发者能够高效地读写数据,不论是来自硬盘、网络、内存还是其他类型的输入输出源。本资料“java-IO.rar”...

    j0601IO_chicken_Java-IO_prettyjtt_

    Java IO还支持转换流(如InputStreamReader和OutputStreamWriter)、过滤流(可以附加到其他流以增加功能)以及随机访问文件(RandomAccessFile)等。随着Java NIO(New IO)的引入,提供了更高级的功能,如通道...

    java-IO操作-(读写、追加、删除、移动、复制、修改).doc

    java IO 操作(读写、追加、删除、移动、复制、修改) java IO 操作是 Java 语言中对文件、流、输入/输出操作的统称。下面是 java IO 操作的详细知识点: 一、 java IO 操作的分类 java IO 操作可以分为两大类:...

    大学课程讲义-Java基础-IO

    Java 基础 - IO Java 的 IO 流主要包括输入、输出两种 IO 流,每种输入、输出流有可分为字节流和字符流两大类。字节流以字节为单位来处理输入、输出操作,字符流以字符为单位来处理输入、输出操作。 ### IO 概述 ...

    JavaIODemo-master.zip

    `JavaIODemo-master.zip`是一个包含Java I/O示例代码的项目,可能是为了帮助开发者理解和实践Java I/O的各种功能。在这个项目中,我们可以期待找到不同类型的I/O操作示例,例如读写文件、流的使用、缓冲区技术、转换...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    Java-IO-Learning

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,使得开发者能够高效地与外部设备、文件、网络等进行数据交互。在这个"Java-IO-Learning"的学习资源中,我们将...

    java IO 类层次图

    ### Java IO 类层次结构解析 #### 一、概述 Java IO(Input/Output)系统是Java平台中的一个重要组成部分,用于处理程序与外部设备之间的数据交换。Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括...

    Java IO处理类的汇总

    Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...

    java io最简java io

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在各种设备、文件、网络连接之间进行数据传输。在这个主题中,我们将深入探讨Java IO的基本概念、...

    Java IO 工具类大全

    Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...

    Java IO 编程集合

    Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...

    javaio实际代码

    在Java中,I/O操作由java.io包提供支持,包含了多种流类,用于读取、写入、处理数据。下面将深入探讨Java I/O的相关知识点,并结合“IOUtil”这个文件名,推测这是一个包含实用I/O工具方法的类。 1. **流的概念**:...

Global site tag (gtag.js) - Google Analytics