灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2365回复:0

[二级考试]2012年计算机二级Java输入输出操作学习教程(5)

楼主#
更多 发布于:2012-08-22 13:50

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();
  }
  }


喜欢0 评分0
游客

返回顶部