个性化阅读
专注于IT技术分析

Java RandomAccessFile

此类用于读取和写入随机访问文件。随机访问文件的行为类似于大字节数组。有一个指向该数组的游标, 称为文件指针, 通过移动游标我们可以执行读写操作。如果在读取所需的字节数之前已到达文件末尾, 则将引发EOFException。它是IOException的一种。

建设者

建设者 描述
RandomAccessFile(File file, String mode) 创建一个随机访问文件流, 以读取和可选地写入File参数指定的文件。
RandomAccessFile(String name, String mode) 创建一个随机访问文件流, 以读取具有指定名称的文件, 也可以选择写入该文件。

方法

修饰符和类型 方法 方法
void close() 它关闭此随机访问文件流, 并释放与该流关联的所有系统资源。
FileChannel getChannel() 它返回与此文件关联的唯一FileChannel对象。
int readInt() 它从该文件读取一个带符号的32位整数。
String readUTF() 它从该文件中读取一个字符串。
void seek(long pos) 它设置文件指针偏移量, 从该文件的开头开始测量, 在该位置下一次读取或写入。
void writeDouble(double v) 它使用Double类中的doubleToLongBits方法将double参数转换为long, 然后将该long值作为八字节数量写入文件, 高字节在前。
void writeFloat(float v) 它使用Float类中的floatToIntBits方法将float参数转换为int, 然后将该int值作为四字节数量的文件写入文件, 高字节在前。
void write(int b) 它将指定的字节写入此文件。
int read() 它从该文件读取一个字节的数据。
long length() 它返回此文件的长度。
void seek(long pos) 它设置文件指针偏移量, 从该文件的开头开始测量, 在该位置下一次读取或写入。

import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileExample {
	static final String FILEPATH ="myFile.TXT";
	public static void main(String[] args) {
		try {
			System.out.println(new String(readFromFile(FILEPATH, 0, 18)));
			writeToFile(FILEPATH, "I love my country and my people", 31);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	private static byte[] readFromFile(String filePath, int position, int size)
			throws IOException {
		RandomAccessFile file = new RandomAccessFile(filePath, "r");
		file.seek(position);
		byte[] bytes = new byte[size];
		file.read(bytes);
		file.close();
		return bytes;
	}
	private static void writeToFile(String filePath, String data, int position)
			throws IOException {
		RandomAccessFile file = new RandomAccessFile(filePath, "rw");
		file.seek(position);
		file.write(data.getBytes());
		file.close();
	}
}

myFile.TXT包含文本“此类用于读取和写入随机访问文件”。

运行程序后, 它将包含

本课程用于阅读我爱我的国家和人民。

赞(0)
未经允许不得转载:srcmini » Java RandomAccessFile

评论 抢沙发

评论前必须登录!