导航:首页 > 编程语言 > java合并txt文件

java合并txt文件

发布时间:2022-09-20 20:02:01

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


importjava.io.File;
importjava.io.PrintStream;
importjava.util.Scanner;

/**
*2015年11月18日上午9:31:05
*
*@authorcs2110TODO合并数组
*
*/
publicclassMergeFile{
privateStringafile="D:/1.txt";
privateStringbfile="D:/2.txt";
privateStringmergefile="D:/3.txt";

/**
*读取文件里面的整数
*
*@paraminput
*Scanner对象
*@return返回整形数组
*/
publicint[]readFile(Scannerinput){
try{
Stringtemp="";
while(input.hasNextInt()){
temp+=input.nextInt()+",";
}

String[]nums=temp.split(",");
int[]arr=newint[nums.length];
for(intindex=0;index<nums.length;index++){

arr[index]=Integer.parseInt(nums[index]);
}
returnarr;
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

/**
*合并数组
*
*@parama
*数组1
*@paramb
*数组2
*@return整形数组
*/
publicint[]merge(int[]a,int[]b){
intlen=a.length;
if(b.length<len){
len=b.length;
}

int[]all=newint[a.length+b.length];
intindex=0;
intaIndex=0;
intbIndex=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++];
}
}

returnall;
}

/**
*写入文件
*
*@paramprint
*PrintStream
*@parama
*数组
*/
publicvoidwriteFile(PrintStreamprint,int[]a){
for(intindex=0;null!=a&&index<a.length;index++){
print.append(a[index]+" ");
}
}

publicstaticvoidmain(String[]args){
MergeFilemerge=newMergeFile();

if(null!=args&&args.length>2){//输入参数合法,则使用,否则按照默认
merge.afile=args[0];
merge.bfile=args[1];
merge.mergefile=args[2];
}else{
System.out.println("Usingthedefaultfile");
}

Scannerinput=null;

int[]a=null;
int[]b=null;
int[]all=null;

try{
input=newScanner(newFile(merge.afile));
a=merge.readFile(input);

input=newScanner(newFile(merge.bfile));
b=merge.readFile(input);

all=merge.merge(a,b);

PrintStreamprint=newPrintStream(newFile(merge.mergefile));

merge.writeFile(print,all);

}catch(Exceptione){
e.printStackTrace();
}

}

}

② JAVA合并TXT文件数据

ok!我给你写完了,首先你在D盘下面见两个文件
分别是 file1.txt和file2.txt
如下所示
file1.txt
-----------------------------
id|name|class
1|test|class1
2|test2|class2
3|test3|class3

file2.txt
-----------------------------------
id|sex|teacher
1|male|wang
2|female|zhang
3|male|li

------------------------------------------
程序如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class CombinFile {
private final String FILE1 = "d:\\file1.txt";
private final String FILE2 = "d:\\file2.txt";
private final String FILENAME="d:\\combinFile.txt";

private InputStream getFileStream(String fileName) throws FileNotFoundException{
FileInputStream fis = new FileInputStream(new File(fileName));
return fis;
}

private void combinFile() throws IOException{
FileOutputStream fos = new FileOutputStream(new File(FILENAME));
InputStream fis1 = getFileStream(FILE1);
InputStream fis2 = getFileStream(FILE2);
int len = 0;
while((len=fis1.read())!=-1){
fos.write(len);
}
System.out.println("第一个文件已经写到目标文件.....");
fis1.close();
fos.flush();

while((len=fis2.read())!=-1){
fos.write(len);
}

System.out.println("第二个文件已经写到目标文件");
fis2.close();
fos.flush();
fos.close();

System.out.println("文件整合完毕");
}

public static void main(String[] args) {
try {
new CombinFile().combinFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}

--------------------------------------------------------
程序运行如下:
产生combinFile.txt文件,内容如下
id|name|class
1|test|class1
2|test2|class2
3|test3|class3
id|sex|teacher
1|male|wang
2|female|zhang
3|male|li

③ java 多个txt文件合并,并且统一字符编码

使用 java.io.FileInputStream和 java.io.InputStreamReader 可以根据编码读文件

写文件则可以使用java.io.FileOutputStream 和 java.io.OutputStreamWriter

④ 如何使用java合并多个文件

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

importstaticjava.lang.System.out;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.nio.ByteBuffer;
importjava.nio.channels.FileChannel;
importjava.util.Arrays;

publicclasstest{

publicstaticfinalintBUFSIZE=1024*8;

publicstaticvoidmergeFiles(StringoutFile,String[]files){
FileChanneloutChannel=null;
out.println("Merge"+Arrays.toString(files)+"into"+outFile);
try{
outChannel=newFileOutputStream(outFile).getChannel();
for(Stringf:files){
FileChannelfc=newFileInputStream(f).getChannel();
ByteBufferbb=ByteBuffer.allocate(BUFSIZE);
while(fc.read(bb)!=-1){
bb.flip();
outChannel.write(bb);
bb.clear();
}
fc.close();
}
out.println("Merged!!");
}catch(IOExceptionioe){
ioe.printStackTrace();
}finally{
try{if(outChannel!=null){outChannel.close();}}catch(IOExceptionignore){}
}
}
//下面代码是将D盘的1.txt2.txt3.txt文件合并成out.txt文件。
publicstaticvoidmain(String[]args){
mergeFiles("D:/output.txt",newString[]{"D:/1.txt","D:/2.txt","D:/3.txt"});
}
}

⑤ 编写一个java程序,将一个目录及其子目录下的所有txt类型的文本文件中的内容合并到若干个新的文本文件中.

首先用FileInputStream的available()方法,得到你的文件字节大小,1mb=1024kb ,1kb=1024b.这样就可以把文件按照1mb分成若干等分。
用RandomAccessFile读写文件。用skipBytes()截取文件。
只能给你个思路了。

⑥ 用java实现合并多个txt文件

可以试下用BufferedReader和BufferedWriter进行文件读写,合并在读的时候做就行了。

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

java可以使用FileChannel快速高效地将多个文件合并到一起,以下是详细代码:

importstaticjava.lang.System.out;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.nio.ByteBuffer;
importjava.nio.channels.FileChannel;
importjava.util.Arrays;

publicclasstest{
publicstaticfinalintBUFSIZE=1024*8;
publicstaticvoidmergeFiles(StringoutFile,String[]files){
FileChanneloutChannel=null;
out.println("Merge"+Arrays.toString(files)+"into"+outFile);
try{
outChannel=newFileOutputStream(outFile).getChannel();
for(Stringf:files){
FileChannelfc=newFileInputStream(f).getChannel();
ByteBufferbb=ByteBuffer.allocate(BUFSIZE);
while(fc.read(bb)!=-1){
bb.flip();
outChannel.write(bb);
bb.clear();
}
fc.close();
}
out.println("Merged!!");
}catch(IOExceptionioe){
ioe.printStackTrace();
}finally{
try{if(outChannel!=null){outChannel.close();}}catch(IOExceptionignore){}
}
}
publicstaticvoidmain(String[]args){
mergeFiles("D:/output.txt",newString[]{"D:/in_1.txt","D:/in_2.txt","D:/in_3.txt"});
}
}

⑧ java如何合并多个大的txt文件(每个文件50M)。nio处理文件如何提高速度

这种情况java.io, nio没有大区别

byte[]buf=newbyte[8*1024];
try(OutputStreamout=newnewFileOutputStream(outfile)){
for(Filef:txtFiles){
try(FileInputStreamin=newFileInputStream(f)){
org.apache.commons.io.IOUtils.Large(in,out,buf);
}
}
}

要是linux下,shell里直接执行cat *.txt >out.txt就可以,不用写代码

⑨ java编程,txt文件整合到一起。

写了一个,输入到all.txt里的格式如下:

C:\data\StudentInfo.txt
--------

C:\data\新建 文本文档.txt
(该文件内容为空!)

C:\data\新建文件夹\1.txt
第一行
第二行

代码如下:

import java.io.*;

public class AllTxt {

public static void main(String[] args) {
moveAllContentToOne("C:\\data\\", "C:\\all.txt");
}

public static void moveAllContentToOne(String path, String target) {
File source = new File(path);
File targetfile = new File(target);
moveAllContentToOne(source, targetfile);
}

public static void moveAllContentToOne(File source, File targetfile) {
File[] files = null;
if(source.isDirectory()) {
files = source.listFiles();
for(int i=0; i<files.length; i++) {
moveAllContentToOne(files[i], targetfile);
}
return;
}
if(source.getName().matches(".*\\.[tT][xX][tT]$")) {
System.out.println(source.getName());
try {
BufferedReader br = new BufferedReader(new FileReader(source));
BufferedWriter bw = new BufferedWriter(new FileWriter(targetfile, true));
bw.write(source.getPath());
bw.newLine();
String str = br.readLine();
if(str == null) {
bw.write("(该文件内容为空!)");
bw.newLine();
}
else {
while(str != null) {
bw.write(str);
bw.newLine();
str = br.readLine();
}
}
bw.newLine();
bw.flush();
bw.close();
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

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

参考代码如下:

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

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

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

代码:

packageorg.lq.util;
importstaticjava.lang.System.out;

importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.nio.ByteBuffer;
importjava.nio.CharBuffer;
importjava.nio.channels.FileChannel;
importjava.nio.charset.Charset;
importjava.nio.charset.CharsetDecoder;
importjava.nio.charset.CharsetEncoder;
importjava.util.Arrays;


publicclassMergeFile{
publicstaticfinalintBUFSIZE=1024*8;
publicstaticvoidmergeFiles(StringoutFile,String[]files){
FileChanneloutChannel=null;
out.println("Merge"+Arrays.toString(files)+"into"+outFile);
try{
outChannel=newFileOutputStream(outFile).getChannel();
for(Stringf:files){
Charsetcharset=Charset.forName("utf-8");
CharsetDecoderchdecoder=charset.newDecoder();
CharsetEncoderchencoder=charset.newEncoder();
FileChannelfc=newFileInputStream(f).getChannel();
ByteBufferbb=ByteBuffer.allocate(BUFSIZE);
CharBuffercharBuffer=chdecoder.decode(bb);
ByteBuffernbuBuffer=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(IOExceptionioe){
ioe.printStackTrace();
}finally{
try{if(outChannel!=null){outChannel.close();}}catch(IOExceptionignore){}
}
}
}
阅读全文

与java合并txt文件相关的资料

热点内容
手机文件管理在哪儿新建文件夹 浏览:719
加密ts视频怎么合并 浏览:773
php如何写app接口 浏览:800
宇宙的琴弦pdf 浏览:395
js项目提成计算器程序员 浏览:942
pdf光子 浏览:832
自拍软件文件夹名称大全 浏览:325
程序员留学移民 浏览:51
梁中间部位箍筋加密区 浏览:118
频谱分析pdf 浏览:751
乐2怎么升级安卓70 浏览:173
java中获取日期 浏览:506
单片机74hc245 浏览:272
美国历史上的总统pdf 浏览:752
程序员脱单实验室靠不靠谱 浏览:460
php中间四位手机号 浏览:871
永旺app怎么样了 浏览:518
压缩空气流量计算软件 浏览:651
智慧聊天app怎么激活 浏览:926
一加换机备份到哪个文件夹 浏览:737