您的位置:

java合并文件,java文件拆分与合并

本文目录一览:

java合并两个txt文件并生成新txt

import java.io.File;

import java.io.PrintStream;

import java.util.Scanner;

/**

 * 2015年11月18日上午9:31:05

 * 

 * @author cs2110 TODO 合并数组

 *

 */

public class MergeFile {

    private String afile = "D:/1.txt";

    private String bfile = "D:/2.txt";

    private String mergefile = "D:/3.txt";

    /**

     * 读取文件里面的整数

     * 

     * @param input

     *            Scanner对象

     * @return 返回整形数组

     */

    public int[] readFile(Scanner input) {

        try {

            String temp = "";

            while (input.hasNextInt()) {

                temp += input.nextInt() + ",";

            }

            String[] nums = temp.split(",");

            int[] arr = new int[nums.length];

            for (int index = 0; index  nums.length; index++) {

                arr[index] = Integer.parseInt(nums[index]);

            }

            return arr;

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

    /**

     * 合并数组

     * 

     * @param a

     *            数组1

     * @param b

     *            数组2

     * @return 整形数组

     */

    public int[] merge(int[] a, int[] b) {

        int len = a.length;

        if (b.length  len) {

            len = b.length;

        }

        int[] all = new int[a.length + b.length];

        int index = 0;

        int aIndex = 0;

        int bIndex = 0;

        while (aIndex  len || bIndex  len) {

            if (a[aIndex]  b[bIndex]) {

                all[index] = a[aIndex];

                aIndex++;

            } else {

                all[index] = b[bIndex];

                bIndex++;

            }

            index++;

        }

        if (aIndex  a.length) {

            while (aIndex  a.length) {

                all[index++] = a[aIndex++];

            }

        } else {

            while (bIndex  b.length) {

                all[index++] = b[bIndex++];

            }

        }

        return all;

    }

    /**

     * 写入文件

     * 

     * @param print

     *            PrintStream

     * @param a

     *            数组

     */

    public void writeFile(PrintStream print, int[] a) {

        for (int index = 0; null != a  index  a.length; index++) {

            print.append(a[index] + "\r\n");

        }

    }

    public static void main(String[] args) {

        MergeFile merge = new MergeFile();

        if (null != args  args.length  2) {// 输入参数合法,则使用,否则按照默认

            merge.afile = args[0];

            merge.bfile = args[1];

            merge.mergefile = args[2];

        } else {

            System.out.println("Using the default file");

        }

        Scanner input = null;

        int[] a = null;

        int[] b = null;

        int[] all = null;

        try {

            input = new Scanner(new File(merge.afile));

            a = merge.readFile(input);

            input = new Scanner(new File(merge.bfile));

            b = merge.readFile(input);

            all = merge.merge(a, b);

            PrintStream print = new PrintStream(new File(merge.mergefile));

            merge.writeFile(print, all);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

如何通过java将多个word文档合成一个wor

国内有个免费的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。

1.新起一页合并

import com.spire.doc.Document;

import com.spire.doc.FileFormat;

public class MergeWordDocument {

    public static void main(String[] args){

        //获取第一个文档的路径

        String filePath1 = "merge1.docx";

        //获取第二个文档的路径

        String filePath2 = "merge2.docx";

        //加载第一个文档

        Document document = new Document(filePath1);

        //使用insertTextFromFile方法将第二个文档的内容插入到第一个文档

        document.insertTextFromFile(filePath2, FileFormat.Docx_2013);

        //保存文档

        document.saveToFile("Output.docx", FileFormat.Docx_2013);

    }

}

2.承接上文段落合并

import com.spire.doc.Document;

import com.spire.doc.DocumentObject;

import com.spire.doc.FileFormat;

import com.spire.doc.Section;

public class MergeWordDocument {

    public static void main(String[] args){

        //获取第一个文档的路径

        String filePath1 = "merge1.docx";

        //获取第二个文档的路径

        String filePath2 = "merge2.docx";

        //加载第一个文档

        Document document1 = new Document(filePath1);

        //加载第二个文档

        Document document2 = new Document(filePath2);

        //获取第一个文档的最后一个section

        Section lastSection = document1.getLastSection();

        //将第二个文档的段落作为新的段落添加到第一个文档的最后一个section

        for (Section section:(Iterable Section)document2.getSections()) {

            for (DocumentObject obj:(Iterable DocumentObject)section.getBody().getChildObjects()

            ) {

                lastSection.getBody().getChildObjects().add(obj.deepClone());

            }

        }

        //保存文档

        document1.saveToFile("Output.docx", FileFormat.Docx_2013);

    }

}

可参考原文。

Java如何高效合并多个文件

import static java.lang.System.out;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.util.Arrays;

public class test {

public static final int BUFSIZE = 1024 * 8;

public static void mergeFiles(String outFile, String[] files) {

FileChannel outChannel = null;

out.println("Merge " + Arrays.toString(files) + " into " + outFile);

try {

outChannel = new FileOutputStream(outFile).getChannel();

for(String f : files){

FileChannel fc = new FileInputStream(f).getChannel();

ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);

while(fc.read(bb) != -1){

bb.flip();

outChannel.write(bb);

bb.clear();

}

fc.close();

}

out.println("Merged!! ");

} catch (IOException ioe) {

ioe.printStackTrace();

} finally {

try {if (outChannel != null) {outChannel.close();}} catch (IOException ignore) {}

}

}

public static void main(String[] args) {

mergeFiles("D:/output.txt", new String[]{"D:/in_1.txt", "D:/in_2.txt", "D:/in_3.txt"});

}

}

如何使用Java合并多个文件

使用java编程语言,对文件进行操作,合并多个文件,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import static java.lang.System.out;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.util.Arrays;

public class test {

public static final int BUFSIZE = 1024 * 8;

public static void mergeFiles(String outFile, String[] files) {

FileChannel outChannel = null;

out.println("Merge " + Arrays.toString(files) + " into " + outFile);

try {

outChannel = new FileOutputStream(outFile).getChannel();

for(String f : files){

FileChannel fc = new FileInputStream(f).getChannel();

ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);

while(fc.read(bb) != -1){

bb.flip();