A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘凯 金牌黑马   /  2013-2-23 17:08  /  1471 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
class RandomAccessTest
{
public static void main(String[] args)
{
  RandomAccessFile raf = null;
  try
  {
   raf = new RandomAccessFile("Test.txt","rw");
  write(raf);
   read(raf);
  }
  catch (Exception ioe)
  {
   throw new RuntimeException("初始化失败");
  }
  finally
  {
   try
   {
    if(raf!=null)
     raf.close();
   }
   catch (IOException ioe)
   {
    throw new RuntimeException("读写流关闭失败");
   }
  }
}
public static void write(RandomAccessFile raf)
{
  try
  {
   raf.write("张三".getBytes());
   raf.writeInt(33);
   raf.writeChar('男');
   raf.write("李四".getBytes());
   raf.writeInt(33);
   raf.writeChar('男');
  }
  catch (IOException ioe)
  {
    throw new RuntimeException("写失败");
  }
}
public static void read(RandomAccessFile raf)
{
  try
  {
   byte[] buf = new byte[4];
   raf.seek(10);
   raf.read(buf);
   String name = new String(buf);
  int age = raf.readInt();
  char sex = raf.readChar();
   System.out.println("姓名:"+name+" 年龄:"+age+"性别:"+sex);   
  }
  catch (IOException ioe)
  {
   throw new RuntimeException("读失败");
  }
}
}


程序报异常  : 读失败
然而将上面代码红色标记的
write(raf);
read(raf);

注释read(raf);编译执行一遍 先写入
再注释write(raf);编译再执行 读出
就没问题

这是在说
一个RandomAccessFile流 不能够再一次执行中 对同一个文件 写和读 都执行么?
求高手解答


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马