java-io流-合并多个文件

此处以log0.txt和log1.txt合并为log.txt为例。

//创建一个文件数组来存放源文件

 File[] orfiles = new File[2];

 orfiles[0] = new File(property+"\\log0.txt");//property为文件路径

 orfiles[1] = new File(property+"\\log1.txt");

//创建输出流

BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(new File(property+"\\log.txt")));

byte[] buffer = new byte[1024];

//因为我这块是俩个日志文件,输出日志的时候是轮询着输出。一个日志大小超过6M之后自动输出到另一个日志文件。

//比较俩个文件的大小。决定合并时输出的前后顺序。小的是最新日志。

//比较大小,决定前后位置
            if(log0.length()>log1.length()) {
                //log1为最新日志。此处可以用for循环实现。为了方便我此处未使用。
                 BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(orfiles[0]));
                 int readcount;
                 while ((readcount = inputStream.read(buffer)) > 0) {
                     outputStream.write(buffer, 0, readcount);
                 }
                 inputStream.close();
                 
                 BufferedInputStream inputStream1 = new BufferedInputStream(new FileInputStream(orfiles[1]));
                 int readcount1;
                 while ((readcount1 = inputStream1.read(buffer)) > 0) {
                     outputStream.write(buffer, 0, readcount1);
                 }
                 inputStream1.close();
                 outputStream.close();
            }else {
                //log0为最新日志
                BufferedInputStream inputStream1 = new BufferedInputStream(new FileInputStream(orfiles[1]));
                 int readcount1;
                 while ((readcount1 = inputStream1.read(buffer)) > 0) {
                     outputStream.write(buffer, 0, readcount1);
                 }
                 inputStream1.close();
                BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(orfiles[0]));
                 int readcount;
                 while ((readcount = inputStream.read(buffer)) > 0) {
                     outputStream.write(buffer, 0, readcount);
                 }
                 inputStream.close();
                 outputStream.close();
                
            }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值