2012年计算机二级Java输入输出操作学习教程(5)
2921 点击·0 回帖
![]() | ![]() | |
![]() | 9.12.3 输出记数 在使用二进制数据输出时常用的另外一个函数是size()。这个函数返回写入文件数据的总字 节数。你也可用size()函数将数据文件分成四字节为单位的块,例如: int bytesLeft = myDataStream.size()%4; for (int I = 0; I< bytesLeft; I++) { myDataStrea.write(0); } 9.13 随机访问文件 我们读文件常常不是从头至尾顺序读的。也许想将一文本文件当作一个数据库, 读完一个记录后,跳到另一个记录,它们在文件的不同地方。java提出了RandomAccessFile类让操作这种类型的输入输出。 9.13.1 创建随机访问文件 打开随机访问文件有两种方法: 1. 用文件名 myRAFile = new RandomAccessFile(String name,String mode); 2. 用文件对象 myRAFile = new RandomAccessFile(File file,String mode); mode参数决定了访问文件的权限, 如只读'r'或读写'wr'等。 例如, 我们打开一个数据库更新数据: RandomAccessFile myRAFile; myRAFile = new RandomAccessFile("/usr/db/stock.dbf","rw"); 9.13.2 访问信息 RandomAccessFile对象的读写操作和DataInput/DataOutput对象的操作方式 一 样。 你可以使用在DataInputStream 和DataOutputStream里出现的所有read()和write()函数。 还有几个函数帮助你在文件里移动指针: long getFilePointer(); 返回当前指针; void seek(long pos); 将文件指针定位到一个绝对地址。地址是相对于文件头的偏移量。地址0表示文件的开头。 long length(); 返回文件的长度。 地址"length()"表示文件的结尾。 9.13.3 增加信息 你可以使用随机访问文件来设置成增加信息模式: myRAFile = new RandomAccessFile("/tmp/java.log","rw"); myRAFile.seek(myRAFile.length()); //Any subsequent write()s will be appended to the file 9.13.4 追加信息例子 下面是一个在已存在文件后面追加字符的例子: import java.io.IOException; import java.io.RandomAccessFile; public class raTest { public static void main(String args[]) throws IOException { RandomAccessFile myFAFile; String s = "Information to AppendnHi mom!n"; //open our random access file myRAFile = new RandomAccessFile("/tmp/java.log","rw"); //move to the end of the file myRAFile.seek(myRAFile.length()); //Start appending! myRAFile.writeBytes(s); myRAFile.close(); } } | |
![]() | ![]() |