如何使用java合并多个文件

Python040

如何使用java合并多个文件,第1张

使用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) {}

  }

 }

 //下面代码是将D盘的1.txt 2.txt 3.txt文件合并成out.txt文件。

 public static void main(String[] args) {

  mergeFiles("D:/output.txt", new String[]{"D:/1.txt", "D:/2.txt", "D:/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"})

}

}