java.io.RandomAccessFile
2017-06-29 21:51
387 查看
此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过
getFilePointer
方法读取,并通过
seek方法设置。
通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出
EOFException(是一种
IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出
IOException,而不是
EOFException。需要特别指出的是,如果流已被关闭,则可能抛出
IOException。
构造方法:
RandomAccessFile(File file,String mode )
创建从中读取和向其中写入(可选)的随机访问文件流,该文件由
File参数指定。
RandomAccessFile(String name,String mode)
创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。
常用方法:
void close()
关闭此随机访问文件流并释放与该流关联的所有系统资源。
long length()
返回此文件的长度
getFilePointer()
返回此文件中的当前偏移量。
int read()
从此文件中读取一个数据字节。
int read(byte[] b)
将最多
b.length个数据字节从此文件读入 byte 数组。
int read(byte[] b,int off,int len)
将最多
len个数据字节从此文件读入 byte 数组。
readInt()
从此文件读取一个有符号的 32 位整数。
void seek(long pos)
设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
write(int b)
向此文件写入指定的字节。
write(byte[] b)
将
b.length个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。
write(byte[] b,int off,int len)
将
len个字节从指定 byte 数组写入到此文件,并从偏移量
off处开始。
writeInt(int v)
按四个字节将
int写入该文件,先写高字节。
复制一张图片的案例:
package june;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 测试复制文件的类
* @author overfront
*
*/
public class RandomAccessFileTest {
public static void main(String[] args) throws IOException {
RandomAccessFile src = new RandomAccessFile("house.jpg","r");
RandomAccessFile target = new RandomAccessFile("house_copy.jpg","rw");
byte[] data = new byte[1024*10];
int len;
while((len=src.read(data))!=-1){
target.write(data,0,len);
}
System.out.println("复制完毕!");
src.close();
target.close();
}
}
文件复制前:
程序运行后复制完毕:
相关文章推荐
- java io 笔记一:RandomAccessFile(随机访问) 类
- [java-io]RandomAccessFile
- The class demostrates the use of java.io.RandomAccessFile
- Java IO----RandomAccessFile
- [学习笔记]Java基础_IO(包含对象流序列化使用和RandomAccessFile 类的使用)
- 黑马程序员--javaIO 之RandomAccessFile
- Java IO-RandomAccessFile
- java.io.RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- java IO(一):File、RandomAccessFile、字节流与字符流、字节字符转换流
- java io 笔记一:RandomAccessFile(随机访问) 类
- Java IO _RandomAccessFile 类
- Java--(IO)之RandomAccessFile
- java.io.RandomAccessFile
- Java.IO.RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- Java IO体系之强大的RandomAccessFile
- Java IO笔记(3)RandomAccessFile
- think in java - io - RandomAccessFile
- java io系列26之 RandomAccessFile