package com.io.file;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* @类功能说明:该类不是IO体系中的,而是直接继承自Object
* 但是它是IO包中的一员,因为他具备了读写能力
* 内部封装了一个数组,可以通过指针对数组元素的操作
* 可以通过getFilePointer获取指针的位置
* 同时可以通过seek改变指针的位置
*
* 其实完成读写的原理,就是内部封装了字节写入流和字节输出流
* 通过构造函数可以看出,该类仅操作文件
* 而且操作文件还有模式:r(只读),rw(读写)等
*
* 如果模式为r,不会创建文件,会去读取一个文件,如果读不到,则抛出异常
* 如果模式为rw,要操作的文件不存在,会创建,如果存在,则不会覆盖(写入数据的时候覆盖相应字节位置的数据)
* @类修改者:
* @修改日期:
* @修改说明:
* @作者:matieli
* @创建时间:May 26, 2012 9:28:59 AM
* @版本:V1.0
*
*/
public class RandomAccessFileDemo {
public static void main(String[] args)throws IOException {
//writeFile();
//readFile();
//writeFile_2();
}
public static void readFile()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","r");
//跳过“李四”,读取张三的信息
//raf.seek(8);//当前例子中,名字和年龄各占4个字节
raf.skipBytes(8);//通过掉过字节数的方式,不能向回读。
byte[] b=new byte[4];//之前写入的都是按4字节写入的
raf.read(b);
String name=new String(b);
System.out.println("名字是:"+name);
int age =raf.readInt();
System.out.println("年龄是:"+age);
raf.close();
}
public static void writeFile_2()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
//控制写入的位置
raf.seek(8*3);
raf.write("王五".getBytes());
raf.writeInt(103);//按int的4字节写入
raf.close();
}
public static void writeFile()throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
raf.write("李四".getBytes());
raf.writeInt(97);//按int的4字节写入
raf.write("张三".getBytes());
raf.writeInt(99);//按int的4字节写入
raf.close();
}
}
分享到:
相关推荐
Java IO流是Java平台中用于处理输入和输出的重要机制,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流...
2. **RandomAccessFile类**:Java提供了`java.io.RandomAccessFile`类来实现文件的随机读写。它可以定位到文件的任意位置进行读写,非常适合处理大文件或需要频繁跳转的场景。使用`RandomAccessFile`时,需要传入...
这种流允许在文件中随机读写,提供了查找和定位数据位置的能力。 14. NIO(New IO): Java 1.4引入的新I/O模型,提供了非阻塞I/O、通道(Channel)和选择器(Selector)等高级特性,提高了I/O操作的效率和灵活性...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、流的概念及分类,以及实际编程中的应用。 首先,Java IO体系基于流(Stream)的概念,流是数据的序列,可以是从输入源读取或向输出目标写入。Java IO提供...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括但不限于文件读写、网络通信等。本文将通过分析一张清晰明了的Java IO类层次图,详细介绍Java IO体系中的主要类及其关系。 #### 二、Java IO 类层次...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...
- `RandomAccessFile`类:支持对文件的随机读写,可定位到文件的任意位置。 9. **字符编码** - Java默认使用UTF-16编码,但可以通过`InputStreamReader`和`OutputStreamWriter`设置其他编码。 10. **管道流...
9. **随机访问文件**:RandomAccessFile允许对文件进行随机读写,支持直接定位到文件的任意位置。 10. **网络编程中的IO流**:Socket和ServerSocket类以及相关的输入输出流,用于网络数据的传输。 11. **NIO(New ...
本篇将深入探讨Java IO中的核心类、流的概念、缓冲区技术以及NIO(New IO)框架。 1. **核心IO类** - `InputStream` 和 `OutputStream` 是所有字节流的基类,分别代表输入和输出。它们提供了读写单个字节的基本...
`RandomAccessFile`类提供了随机读写文件的能力,可以定位到文件的任意位置进行读写操作,非常适用于大数据量文件的处理。 #### 五、I/O示例代码 ```java import java.io.*; public class TestIO { public ...
- **流(Stream)**:Java IO基于流的概念,流是一组有序的数据序列,可以是字节流或字符流。数据从源(如文件)流向目的地(如内存)。 - **缓冲区(Buffer)**:为了提高效率,Java IO会使用缓冲区来临时存储...
Java IO和NIO是Java平台中用于输入/输出操作的核心组件。这两个库为开发者提供了处理数据传输的强大工具,无论是在磁盘、网络还是内存中。本合集包含了两本关于这些主题的专业书籍——"Java IO"和"Java NIO",它们...
在Java中,I/O操作由java.io包提供支持,包含了多种流类,用于读取、写入、处理数据。下面将深入探讨Java I/O的相关知识点,并结合“IOUtil”这个文件名,推测这是一个包含实用I/O工具方法的类。 1. **流的概念**:...
- **随机读写**:随机读写速度较慢,因为磁头需要频繁移动到不同的位置。 对于磁盘IO的优化,可以通过以下方法实现: - 使用缓存减少磁盘访问次数。 - 对文件进行预读或延迟写入。 - 并发读写以提高吞吐量。 #### ...
Java IO 还提供了多种高级功能,比如转换流(InputStreamReader/OutputStreamWriter)用于在字节流和字符流之间转换,以及随机访问文件(RandomAccessFile)可以读写文件的任意位置。 理解并熟练掌握Java IO是每个...
总的来说,这个“javaIO学习课件”涵盖了Java I/O的基础到高级主题,包括流的类型、文件操作、线程间通信以及非阻塞I/O,是全面学习和提升Java I/O技能的宝贵资源。通过深入研究这些材料,开发者可以更好地理解和...
RandomAccessFile类允许对文件进行随机读写,尤其适用于需要频繁定位到文件特定位置的情况。 10. **NIO(New IO)** Java 1.4引入了NIO(New IO),提供了非阻塞I/O,通道(Channel)、缓冲区(Buffer)和选择器...