• SequenceInputStream


     1 package file;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.SequenceInputStream;
     8 import java.util.Enumeration;
     9 import java.util.Vector;
    10 
    11 public class Demo9 {
    12     public static void main(String[] args) throws IOException {
    13 //        merge1();
    14         merge2();
    15     }
    16     
    17     
    18     //把三个文件合并
    19     public static void merge2() throws IOException {
    20         //找到目标文件
    21         File inFile1 = new File("F:\1.txt");
    22         File inFile2 = new File("F:\2.txt");
    23         File inFile3 = new File("F:\3.txt");
    24         File outFile = new File("F:\a.txt");
    25         //建立数据的输入输出通道
    26         FileOutputStream fileOutputStream = new FileOutputStream(outFile);
    27         FileInputStream fileInputStream1 = new FileInputStream(inFile1);
    28         FileInputStream fileInputStream2 = new FileInputStream(inFile2);
    29         FileInputStream fileInputStream3 = new FileInputStream(inFile3);
    30         
    31         //创建序列流对象
    32         Vector<FileInputStream> vector = new Vector<FileInputStream>();
    33         vector.add(fileInputStream1);
    34         vector.add(fileInputStream2);
    35         vector.add(fileInputStream3);
    36         Enumeration<FileInputStream> e = vector.elements();
    37         
    38         SequenceInputStream sequenceInputStream = new SequenceInputStream(e);
    39         
    40         //读取文件数据
    41         byte[] buf = new byte[1024];
    42         int length = 0;
    43         while((length = sequenceInputStream.read(buf))!=-1) {
    44             fileOutputStream.write(buf, 0, length);
    45         }
    46         sequenceInputStream.close();
    47         fileOutputStream.close();
    48     }
    49     
    50     //使用SequenceInputStream合并
    51     public static void merge1() throws IOException {
    52         //找到目标文件
    53         File inFile1 = new File("F:\2.txt");
    54         File inFile2 = new File("F:\a.txt");
    55         File outFile = new File("F:\1.txt");
    56         //建立数据的输入输出通道
    57         FileOutputStream fileOutputStream = new FileOutputStream(outFile);
    58         FileInputStream fileInputStream1 = new FileInputStream(inFile1);
    59         FileInputStream fileInputStream2 = new FileInputStream(inFile2);        
    60         //建立序列流对象
    61         SequenceInputStream inputStream = new SequenceInputStream(fileInputStream1,fileInputStream2);
    62         byte[] buf = new byte[1024];
    63         int length = 0;
    64         
    65         while((length = inputStream.read(buf))!=-1) {
    66             fileOutputStream.write(buf, 0, length);
    67         }
    68         //关闭资源
    69         inputStream.close();
    70         fileOutputStream.close();
    71     }
    72 }
  • 相关阅读:
    spring boot的@RequestParam和@RequestBody的区别
    SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍
    Required String parameter is not present
    Spring Boot 日志记录 SLF4J
    400错误,Required String parameter 'paramter' is not present
    初学 Spring boot 报错 Whitelabel Error Page 404
    Powershell获取WMI设备清单
    Powershell快速入门
    perl的Sys::Syslog模块(openlog,syslog,closelog函数,setlogsock)-自定义日志
    制作Windows10政府版的小白教程
  • 原文地址:https://www.cnblogs.com/linst/p/5665716.html
Copyright © 2020-2023  润新知