这是用InputStream,OutputStream做的两个TXT文件合并在另一个文件里面
2017-12-25 14:58
465 查看
这是用InputStream,OutputStream做的两个TXT文件合并在另一个文件里面
a.txt b.txt合并到c.txtimport java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; /* 需求:把a.txt与b.txt合并成一个c.txt */ public class Hebin { public static void main(String[] args) throws Exception { merge1(); } //需求:把a.txt与b.txt合并成一个c.txt public static void merge1() throws Exception{ //找到目标文件 File infile1=new File("E:\\t\\a.txt"); File infile2=new File("E:\\t\\b.txt"); File outfile=new File("E:\\t\\c.txt"); //建立输入输出通道 FileInputStream fileInputStream1=new FileInputStream(infile1); FileInputStream fileInputStream2=new FileInputStream(infile2); FileOutputStream fileOutputStream=new FileOutputStream(outfile); //把输入缓存到集合中,然后再从集合中读取 ArrayList<FileInputStream> list=new ArrayList<FileInputStream>(); list.add(fileInputStream1); list.add(fileInputStream2); //准备一个缓冲数组 byte[] buf=new byte[1024]; int lenght=0; for(int i=0;i<list.size();i++){ FileInputStream fileInputStream=list.get(i); while((lenght=fileInputStream.read(buf))!=-1){ fileOutputStream. 9fe1 write(buf, 0, lenght); } fileInputStream.close(); } fileOutputStream.close(); } }
方法二:## 这是用SequenceInputStream做的 ##
//使用SequenceInputStream合并文件 public static void merge2() throws IOException { //找到目标文件 File infile1=new File("E:\\t\\a.txt"); File infile2=new File("E:\\t\\b.txt"); File outfile=new File("E:\\t\\c.txt"); //建立输入输出通道 FileInputStream fileInputStream1=new FileInputStream(infile1); FileInputStream fileInputStream2=new FileInputStream(infile2); FileOutputStream fileOutputStream=new FileOutputStream(outfile); //建立一个序列流对象 SequenceInputStream si=new SequenceInputStream(fileInputStream1, fileInputStream2); byte[] buf=new byte[1024]; int length=0; while((length=si.read(buf))!=-1){ fileOutputStream.write(buf, 0, length); } si.close();//这里就把fileInputStream1,fileInputStream2关了 fileOutputStream.close(); }
合并三个txt文件 ,到另外一个
回顾:Vector集合的遍历方法是elements()返回Enumeration迭代器SequenceInputStream的构造器有两个,一个是SequenceInputStream(FileInputStream f1,FileInputStream f2)
一个是
SequenceInputStream(Enumeration e)
所以把几个流放在Vector中
public static void merge3() throws IOException{ //找到目标文件 File infile1=new File("E:\\t\\a.txt"); File infile2=new File("E:\\t\\b.txt"); File infile3=new File("E:\\t\\c.txt"); File outfile=new File("E:\\t\\d.txt"); //建立对应的输入输出流对象 FileInputStream fileInputStream1=new FileInputStream(infile1); FileInputStream fileInputStream2=new FileInputStream(infile2); FileInputStream fileInputStream3=new FileInputStream(infile3); FileOutputStream fileOutputStream=new FileOutputStream(outfile); //建立序列流对象 Vector<FileInputStream> vector=new Vector<FileInputStream>(); vector.add(fileInputStream1); vector.add(fileInputStream2); vector.add(fileInputStream3); //迭代器 Enumeration<FileInputStream> e=vector.elements(); SequenceInputStream sequenceInputStream=new SequenceInputStream(e); //读取文件 byte[] buf=new byte[1024]; int lenght=0; while((lenght=sequenceInputStream.read(buf))!=-1){ fileOutputStream.write(buf, 0, lenght); } sequenceInputStream.close(); fileOutputStream.close(); }
相关文章推荐
- matlab 两个txt文件的合并。。
- java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
- 有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。
- java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
- Python比较两个文件(txt,csv等)相同内容合并同一文件/文本时间大小比较大小
- 将硬盘中两个TXT文件读出来,并写入另一个文件
- 将两个文件合并为一个文件,并存如.txt文档中
- 有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。
- 【练习】有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- c#对两个txt文件的列合并
- 如何有效合并两个文件:一个是1亿条的用户基本信息,另一个是用户每天看电影连续剧等的记录,5000万条。其中内存只有1G。
- java IO操作 按照规律合并两个txt文件
- 2014年去哪儿网笔试题--有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。
- 将多个txt文件合并成一个
- java编程之合并两个文件内容
- node.js关于一个js文件引用另一个js文件里面的函数或者数组变量
- Java 字节流实现文件读写操作(InputStream-OutputStream)
- 案例 1-3: 结合InputStream 和 OutputStream 进行文件内容拷贝