`
msn877763580
  • 浏览: 83825 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java IO 之RandomAccessFile

阅读更多

一、了解数据流概念



 数据量其实就是一系列的"010..."的比特串

那么我们如何传递和接受这些比特串呢?下面将介绍一个类RandomAccessFile,该类就可以实现这样的功能。

二、使用RandomAccessFile类

首先,我们要了解一下什么是随机访问:随机访问(有时又称为直接访问)是指同一时间访问一组序列中的一个随意元件;反之我们称另一种访问方式为循序访问。我们可以把文件想象成一些列的比特串存放在一个数组中,随机访问就是指,我们可以任意的访问其中的一个数,而不必进行循序访问。

我们要介绍的这个类就是用于随机访问文件的类:RandomAccessFile,为了便于随机读取,下面的例子限制了字符串的长度。

 

下面我们首先看一组常用的API,大概了解即可:

RandomAccessFile(File file, String mode) 创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定。

RandomAccessFile(String name, String mode) 创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。

void close() 关闭此随机访问文件流并释放与该流关联的所有系统资源。 

long length() 返回此文件的长度。 

int skipBytes(int n) 尝试跳过输入的 个字节以丢弃跳过的字节。 

读取数据相关:

int read() 从此文件中读取一个数据字节。 

int read(byte[] b) 将最多 b.length 个数据字节从此文件读入 byte 数组。 

int read(byte[] b, int off, int len) 将最多 len 个数据字节从此文件读入 byte 数组。 

boolean readBoolean() 从此文件读取一个 boolean。 

byte readByte() 从此文件读取一个有符号的八位值。 

char readChar() 从此文件读取一个字符。 

…… ……其他数据类型相似

String readLine() 从此文件读取文本的下一行。 

写入数据

 void write(byte[] b) 将 b.length 个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。 

 void write(byte[] b, int off, int len) 将 len 个字节从指定 byte 数组写入到此文件,并从偏移量 off 处开始。 

 void write(int b) 向此文件写入指定的字节。 

 void writeBoolean(boolean v) 按单字节值将 boolean 写入该文件。 

 void writeByte(int v) 按单字节值将 byte 写入该文件。 

 void writeBytes(String s) 按字节序列将该字符串写入该文件。

 void writeChar(int v) 按双字节值将 char 写入该文件,先写高字节。 

 void writeChars(String s) 按字符序列将一个字符串写入该文件。 

…… ……

 

import java.io.*;
import java.util.Arrays;
public class RandomAccessDemo01 {
	public static void main(String[] args)throws IOException {

			RandomAccessFile raf01 = new RandomAccessFile("D:/FileTest/raf.txt","rw");
			//写入一组数据限定字符串4位
			String strTest = "abcd";
			int iTest = 33;
			raf01.write(strTest.getBytes());
			raf01.writeInt(iTest);

			//再写入一组数据
			strTest = "mnuv";
			iTest = 32;
			raf01.write(strTest.getBytes());
			raf01.writeInt(iTest);
			raf01.close();
			
			//下面我们读取第二组数据
			RandomAccessFile raf02 = new RandomAccessFile("D:/FileTest/raf.txt","r");
			raf02.skipBytes(8);
			byte[] bTest = new byte[4];
			raf02.read(bTest);
			System.out.println("字符串数据:"+new String(bTest)+",整型数据为:"+raf02.readInt());
	}
}

-------------------

字符串数据:mnuv,整型数据为:32

------------------- 

更多方法参考API

  • 大小: 43.9 KB
分享到:
评论

相关推荐

    Java中IO流 RandomAccessFile类实例详解

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

    Java IO处理类的汇总

    Java IO处理类是Java平台中用于...理解并熟练运用这些类,能够帮助开发者高效地处理各种输入输出需求,是Java程序员必备的技能之一。在实际编程中,应根据具体场景选择合适的流类型,并善用缓冲、过滤流和NIO提升性能。

    Java IO 使用例

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

    Java IO 工具类大全

    Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析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 IO API提供了一系列类和接口,使得开发者能够高效地读取、写入和操作文件。下面我们将深入...

    java io最简java io

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

    JavaIO大部分类

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。在Java 7中,IO系统经过了重大改进,引入了许多新特性,使得数据读写更加高效和方便。本篇将深入探讨Java IO中的核心类、流的概念、...

    javaIO学习课件 很详细的讲解

    这个“javaIO学习课件”提供了非常详尽的教程,旨在帮助初学者和有经验的开发者深入理解Java I/O系统的工作原理和应用。 首先,我们来看一下IO_1.pdf,它可能涵盖了基础的I/O流概念。在Java中,I/O流被分为字节流和...

    Java IO, NIO and NIO.2

    Java IO、NIO以及NIO.2是Java中用于处理输入/输出操作的三种主要机制。本书《Java IO, NIO and NIO.2》旨在深入浅出地介绍这些机制,同时书中内容均为英文。接下来将详细介绍这些知识点。 **Java IO** Java IO是...

    JavaIO底层是如何工作的?Java开发Java经验技巧

    Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。了解Java IO的底层工作原理对于优化程序性能、理解数据传输过程以及解决问题具有重要意义。在这个主题中,我们将深入探讨Java IO的...

    java io 系列操作代码练习 Java学习资料

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,它提供了丰富的类库来实现数据的读写、文件操作、网络通信等功能。在这个“java io 系列操作代码练习”中,我们可以深入理解并掌握Java IO...

    java全栈工程师-java io

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

    java-IO.rar_io_java IO

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

    javaio实际代码

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

    彻底明白java的io系统

    Java的IO系统是Java编程中的核心部分,它允许程序与外部世界进行数据交换,包括读取文件、写入文件、网络通信以及设备交互等。理解并掌握Java的IO系统对于任何Java开发者,尤其是新手,都是至关重要的。在这个实例...

    java IO应用

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分。它提供了丰富的类库,使得开发者能够高效地读写数据,无论是从键盘、文件、网络还是其他I/O设备。在Java中,IO操作是通过流(Stream)进行...

    java_IO完全总结

    Java的IO包中包含大量类和接口,其中流式部分是IO的主要内容,非流式部分包括File类、RandomAccessFile类等辅助类。 2. 非堵塞型IO(NewIO):主要包含在java.nio包中,采用了Observer模式来监测IO端口,有数据时...

Global site tag (gtag.js) - Google Analytics