合并多个文件的内容

合并的结果应该是这样的:

现在是这样的

public static void main(String[] args) {
        List<Object> list = new ArrayList<>();
        File file1 = new File("d:\\ti.txt");
        File file2 = new File("d:\\titi.txt");
        list.add(file1);
        list.add(file2);
        FileWriter writer = null;
        BufferedReader reader = null;
        try {
            for (int i = 0; i < list.size(); i++) {
                File f = (File) list.get(i);
                writer = new FileWriter("d:\\concatenation.txt");
                reader = new BufferedReader(new FileReader(f));

                String l;
                while ((l = reader.readLine()) != null) {
                    writer.write(l);
                }
            }
        writer.flush();
        writer.close();
        reader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    

运行,得到结果如下

怎么只有第二个文件的内容?

原来这一句writer = new FileWriter("d:\\concatenation.txt");写在循环里了,因为writer是引用,所以writer是先指向了一个new FileWriter("d:\\concatenation.txt")地址,循环一下,又指向了一个新的new FileWriter("d:\\concatenation.txt")地址,这时文件只有文件二了,所以写入的只有文件二的内容了

总的目标是一个,所以要写在循环外

public static void main(String[] args) {
        List<Object> list = new ArrayList<>();
        File file1 = new File("d:\\ti.txt");
        File file2 = new File("d:\\titi.txt");
        list.add(file1);
        list.add(file2);
        FileWriter writer = null;
        BufferedReader reader = null;
        try {
            writer = new FileWriter("d:\\concatenation.txt");
            for (int i = 0; i < list.size(); i++) {
                File f = (File) list.get(i);
                reader = new BufferedReader(new FileReader(f));
                String l;
                while ((l = reader.readLine()) != null) {
                    writer.write(l);
                }
            }
        writer.flush();
        writer.close();
        reader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    

时间: 2024-10-22 17:31:34

合并多个文件的内容的相关文章

linux中合并多个文件内容到一个文件的例子

尊敬的用户您好,从即日起 导入 及 导出 功能已经下线,请到阿里云官方数据库管理平台 iDB Cloud 使用该功能! 继续在 iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件,这么多单独的文件再导入到其他数据库中是个麻烦事,需要将所有的SQL文件合并为一个完整的SQL文件.有了这个思路,决定寻找方法来实现. Windows 中实现合并多个文件内容到一个文件中 代码如下 复制代码 (www.111cn.net)copy *.sql MERGE.sql Linux 或 类Un

利用fgetc合并2个源文件的内容,到一个新的文件中

#include <stdio.h> #include <stdlib.h> //功能: 合并2个源文件的内容,到一个新的文件中 int main(int a,char *argv[]){ if(a!=4){ printf("请输入3个文件路径:%s\n", argv[0]); exit(1); } FILE *fp1,*fp2,*fp3; fp1 = fopen(argv[1],"r"); if(fp1==NULL){ printf(&qu

同时实现两个文件的内容

字面上很容易理解,两个文件的内容在同一个水平画面上.文件1占1-30列,然后中间20列用空格隔开,文件2占剩下的30列. 下面我说下我的思路: 比如说规定两篇文章水平的长度为80,文件1先输入1-30个字符(输够的话就用空格符来顶替),然后在用20个空格副隔开,接着再输入文件2的内容30个字符(输够的话也用空格补充),这样就完成了一行的输入.这么想就简单了,两个循环,先外循环输入一行,再内循环输入80个字符.行数是不确定的,因为不知道文件的内容(就算知道了计算也很麻烦),但是列数是确定的,就80

linux中Makefile文件相关内容

第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,makefile还是要懂.这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义.特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力.因为,makefile关系到了整个

Web性能优化之动态合并JS/CSS文件并缓存客户端

在Web开发过程中,会产生很多的js/css文件,传统的引用外部文件的方式会产生多次的http请求,从而加重服务器负担且网页加载缓慢,如何在一次请求中将多个文件一次加载出来?接下来给大家介绍在ASP.NET中动态合并加载多个js或css文件.原理:减少请求服务器的次数达到优化效果先给大家看一下传统引用方式和优化后的比较:1.传统引用方式(下图): 这样的引用方式将会请求5个js文件也就是5次http请求(下图): 2.我们来看看优化后(下图): 大家可以看到修改后只有一次请求,花费的时间节省了很

合并两个文件

原文:合并两个文件 源代码下载地址:http://www.zuidaima.com/share/1550463699438592.htm 使用java合并两个已存在的文件的内容到一个新的文件去 import java.io.*; package com.zuidaima.file.util; /** *@author www.zuidaima.com **/ class combinefile{ public static void main(String[] args) throws IOEx

awk合并两个文件

awk 合并两个文件: awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]"    "$0;j++}' template interface > interface_last template: Template Log tqt_url-response-code Template Log tqt_url-response-code Template Log tqt_url-response-code Template Log tqt_ur

Shell合并两个文件成一个文件的两列

Shell合并两个文件成一个文件的两列 发布时间:2014-07-20   编辑:www.jquerycn.cn Shell合并两个文件成一个文件的两列,提供了两种方法,普通shell脚本,awk脚本. 文件内容如下:more eng.txt chi.txt ::::::::::::::eng.txt::::::::::::::semicoloncommadelimiterspacebarhyphensingle quotedouble quote ::::::::::::::chi.txt::

Shell命令-文件及内容处理之diff、vimdiff

文件及内容处理 - diff.vimdiff 1. diff:比较两个文件区别 diff命令的功能说明 diff命令用比较文件的差异.diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录. diff命令的语法格式 diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][--help][--left-column][--suppress-com