「java合并文件内容」java文件分片合并

博主:adminadmin 2022-12-17 05:42:06 59

本篇文章给大家谈谈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合并多个文件

使用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();

用java io流把多个txt文件的内容合并到一个文件里

参考代码如下:

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

第一个参数是合并后生成文件的路径

第二个参数是你需要合并的文本文件列表

代码:

package org.lq.util;

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.CharBuffer;

import java.nio.channels.FileChannel;

import java.nio.charset.Charset;

import java.nio.charset.CharsetDecoder;

import java.nio.charset.CharsetEncoder;

import java.util.Arrays;

public class MergeFile {

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){

Charset charset=Charset.forName("utf-8");

CharsetDecoder chdecoder=charset.newDecoder();

CharsetEncoder chencoder=charset.newEncoder();

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

ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);

CharBuffer charBuffer=chdecoder.decode(bb);

ByteBuffer nbuBuffer=chencoder.encode(charBuffer);

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

bb.flip();

nbuBuffer.flip();

outChannel.write(nbuBuffer);

    bb.clear();

    nbuBuffer.clear();

}

fc.close();

}

out.println("Merged!! ");

} catch (IOException ioe) {

ioe.printStackTrace();

} finally {

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

}

}

}

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可以使用FileChannel快速高效地将多个文件合并到一起,以下是详细代码:

    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文件分片合并的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。