用java io流把多个txt文件的内容合并到一个文件里 java 如何将两个txt文件内容写入到一个txt文件中?

java \u591a\u4e2atxt\u6587\u4ef6\u5408\u5e76\uff0c\u5e76\u4e14\u7edf\u4e00\u5b57\u7b26\u7f16\u7801

\u4f7f\u7528 java.io.FileInputStream\u548c java.io.InputStreamReader \u53ef\u4ee5\u6839\u636e\u7f16\u7801\u8bfb\u6587\u4ef6

\u5199\u6587\u4ef6\u5219\u53ef\u4ee5\u4f7f\u7528java.io.FileOutputStream \u548c java.io.OutputStreamWriter

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class Demo001 { public static void writeFile(String strSrc, String dest) { FileWriter writer = null; FileReader reader = null; BufferedReader br = null; BufferedWriter bw = null; try { File file = new File(dest); if (!file.exists()) { file.createNewFile(); } // \u8fd9\u91cc\u7684true\uff0c\u662f\u4ee5\u8ffd\u52a0\u7684\u65b9\u5f0f\u5199 writer = new FileWriter(dest, true); reader = new FileReader(strSrc); String str = null; br = new BufferedReader(reader); bw = new BufferedWriter(writer); while ((str = br.readLine()) != null) { StringBuffer sb = new StringBuffer(""); sb.append(str + "\n"); bw.write(sb.toString()); } br.close(); reader.close(); bw.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { Demo001.writeFile("D:/1.txt", "D:/3.txt"); Demo001.writeFile("D:/2.txt", "D:/3.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入门网站 ... java常见的io流分几种 ... java windowbuilder ... nodejs与java交互 ... 一个初中生学java要多久 ... java integer parseint ... minecraft国际版java版 ... java使用io流读取txt文件 ... java官网网址 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网