RandomAccessFile
1.
RandomAccessFile
是
Java
输入输出流体系中功能最丰富
的文件内容访问类,它提供了众多的方法来访问文件内
容,它即可以读取文件内容,也可以向文件输出数据。与
普通的输入
/
输出流不同的是,
RandomAccessFile
支持
“随机访问”
的方式,
程序可以直接跳转到文件的任意地
方来读写数据。
注意:
“随机访问”错误的理解是:随机访问是具有不确定
性的:具有一会儿访问这里、一会儿访问哪里的意思!
RandomAccess
的含义:
应该是任意访问,
而不是随机访
问,也就是说
RAM
(随机存取存储器)是可以自由访问任
意的存储点的存储器(与磁盘、磁带等需要寻道、倒带才可
以访问指定存储点等存储器区分)
;
而
RandomAccessFile
的
含义是可以自由访问文件的任意地方(与
InputStream
、
Reader
需要依次向后读取区分)
,
所以,
RandomAccessFile
的含义不是“随机访问”
,而应该
是“任意访问”
。
由于这个原因,如果我们希望只访问文件部分内容,而不
是把文件从头到尾,使用
RandomAccessFile
将则袭是更好的选
择。
2.RandomAccessFile
类有两个构造器,
其实两个构孙好兄造器基本
相同,
只是指定文件的形式不同而已:
一个使用
String
参数
来指定文件名,一个使用
File
参数来指定文件本身。
RandomAccessFile
是一个很有用的类,
可以将字节流写入到
磁盘文件中,对应的也可以从磁盘文件中读取出字节流,在
API
中关于
RandomAccessFile
的描述如下:
此类的实例支持对随机访问文件的读取和写入。
随机访问文
件的行为类似存储在文件系统中的一个大型
byte
数组。
存
在指向该隐含数组的光标或索引,称为
文件指针
;输入 *** 作
从文件指针开始读取字节,
并随着对字节的读取而前移此文
件指针。如果随机访问文件以读取
/
写入模式创建,则输出
*** 作也可用;输出 *** 作从文件指针开始写入字节,并随着对
字节的写入而袜档前移此文件指针。
写入隐含数组的当前末尾之
后的输出 *** 作导致该数组扩展。该文件指针可以通过
getFilePointer
方法读取,并通过
seek
方法设置。
通常,
如果此类中的所有读取例程在读取所需数量的字节之
前已到达文件末尾,则抛出
EOFException
(是一种
IOException
,文件结尾了还继续读文件,就导致这个错误
抛出。本来
EOF
的数值就是
-1
,但是是一种用于错误标识
的记号
)。如果由于某些原因无法读取任何字节,而不是在读取所
需数量的字节之前已到达文件末尾,则抛出
IOException
,
而不是
EOFException
。需要特别指出的是,如果流已被关
闭,则可能抛出
IOException
。
随机读取文件流的类此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入 *** 作从文件指针开始读谈没取字节,并随着对字节的读取而前移此文件指针。如伏侍粗果随机访问文件以读取/写入模式创建,则输出 *** 作也可用;输出 *** 作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出 *** 作导致该数组扩展。该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。
通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException(是一种 IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException,而不是 EOFException。需要特缺镇别指出的是,如果流已被关闭,则可能抛出 IOException。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)