用java合并多个文件

这篇博客介绍了如何使用Java来合并多个文件。作者通过将文件逐一读取并以字节形式复制到新的目标文件中,实现了文件的合并。实测结果显示,MP3文件可以成功合并,而MP4文件合并后存在播放问题,文本文件合并可能遭遇编码不一致导致的乱码问题。

情景

昨日翻看到我珍藏多年的几个MV,突然想合并到一起做成一个合集文件,
既然java有那么多文件操作的内置函数,顺便复习一下java文件操作,
或许日后还能用到。
方法很简单,首先将想要合拼的文件都放到一个指定的文件夹里,然后逐个
读取,用字节的形式全部复制到另外一个相同格式的同一个文件里。

实测结果

经过实测,合并后的MP4虽然能播放,但是播放完第一部分就停止播放。MP3则能够完美合并。
文本文件如txt,合并后可能会出现由于编码不同导致的中文显示成乱码。


MyCode

//用io流将指定目录下的全部指定格式的文件合并到combinfile里
package combinFileTest;
import java.io.*;
import java.util.Scanner;

public class main {
	public static void main(String[] args) throws IOException{
		File location = new File("D:\\TestCombin");	//指定操作的位置	" 
		String type = "txt";						//指定操作文件的类型
		File targer = new File(location.toString()+"\\combinfile."+type);
		File[] source = location.listFiles();
		//显示合拼顺序
		for( File i:source){
			String fn = i.getName();
			if(judgeSuffix(fn, type)){
				System.out.println(fn);
			}
		}
		//询问是否合拼
		System.out.println("The order is like above, sure to combin?");
		Scanner scn = new Scanner(System.in);
		if(scn.next().toLowerCase().charAt(0)=='y'){
			//合并文件
			FileOutputStream output = new FileOutputStream(targer);
			for(File i:source){
				 if(judgeSuffix(i.getName(), type)==false) continue; //跳过不是指定格式的文件
				 FileInputStream input  = new  FileInputStream (i);
				 byte[] b = new byte[1024];
				 int n;
			     while((n=input.read(b))!=-1){
			        output.write(b, 0, n);
			     }
			     input.close();
			     System.out.println(i.getName()+" copy scuess!");
			}
			output.close();
		}
		System.out.println("ok");
		return;
	}
	//判断后缀名
	public static boolean judgeSuffix(String fn, String s){
		 String suffix = fn.substring(fn.lastIndexOf(".") + 1);
		 return (suffix.equals(s));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值