java中如何将两个文件合并到另一个文件

java中如何将两个文件合并到另一个文件,第1张

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"})  

        }  

    }

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"})

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7939671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存