首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java中标准输出流的使用有关问题

2012-08-26 
java中标准输出流的使用问题package IOimport java.io.*public class SequenceStreamDemo {public stati

java中标准输出流的使用问题
package IO;
import java.io.*;
public class SequenceStreamDemo {
  public static void main(String[] args) throws Exception {
OutputStream ops=null;
InputStream ips1=null;
InputStream ips2=null;
SequenceInputStream sips=null;
ips1=new FileInputStream(new File("D:"+File.separator+"A.txt"));
ips2=new FileInputStream(new File("D:"+File.separator+"B.txt"));
ops=new FileOutputStream(new File("D:"+File.separator+"AB.txt"),true);
sips=new SequenceInputStream(ips1,ips2);
  int temp=0;
  while((temp=sips.read())!=-1){
  ops.write(temp);
  }
  ops.close();
  ips1.close();
  ips2.close();
  sips.close();
  }
}
这是合并流的使用实例,这儿运行后会把A.txt和B.txt的数据一起读取后写到AB.txt。当我把
A.txt的数据减少时,在次运行后,第一次写到AB.txt的数据被清除后把第二次的数据写入到
AB.txt. 怎样使第二次运行后写入的数据覆盖第一次的数据,而不是先清除后写入?

[解决办法]
用RandomAccessFile的话,对文件结构是有要求的,一般三种做法:
1、自带索引信息;
2、定长数据片段;
3、分界标志符(这种需要控制好,否则有风险)。

如果文件结构完全规则,很容易就把自己玩死了。。。

热点排行
Bad Request.