当前位置: 代码迷 >> J2SE >> java中标准输出流的使用有关问题
  详细解决方案

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

热度:39   发布时间:2016-04-24 00:21:22.0
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、分界标志符(这种需要控制好,否则有风险)。

如果文件结构完全规则,很容易就把自己玩死了。。。
  相关解决方案