Java使用IO流读取文件,并合并

Java实现合并图片为.dat后缀的文档,或合并音乐

这个代码实现了,将文件夹中的MP3音乐文件的路径读取到指定的文档mp3.list(可以根据自己的要求更改文档路径和命名)中,并把读取到的mp3音乐合并成一首歌。
当然,如果你想用于合并图片为以.dat为后缀的文档也是可以的,只需修改路径和合并的文档后缀为.dat即可。
dat文件一般是二进制的文件,用于存放程序所使用的数据,DAT并不是一种标准文件。许多软件都使用这个扩展名,但文件含义不同。
这个代码虽然没有太大的实际意义,但是帮助学习java的IO流还是挺有帮助的。

import java.io.*;

public class App01 {
    static String path="C:\\Users\\Administrator\\Desktop\\2021-03-04\\mp3.list";//定义一个全局路径
    public static void main(String[] args) throws IOException {
    
        File file=new File("C:\\Users\\Administrator\\Desktop\\2021-03-04");//需要读取的MP3文件所在的文件夹路径
        createListFile(file);
     
        FileReader fr=new FileReader(path);//读取mp3.list
        BufferedReader br=new BufferedReader(fr);//将字符流转换为字符串流,所以可以一行一行读取mp3.list文档的内容,创建一个使用指定大小输入缓冲区的缓冲字符输入流。
        String mp3Name="";
        FileOutputStream fos=new FileOutputStream("F:\\合并.mp3");//合并后的音乐存入该路径
        while((mp3Name=br.readLine())!=null){
            FileInputStream fis=new FileInputStream(mp3Name);
            int a=0;
            byte buff[]=new byte[1024];//缓冲,一次读取1024个字节。
            while((a=fis.read(buff))!=-1){
                fos.write(buff,0,a);//可以解决文件复制,大小不同的情况,如果文件不是1024的整数倍大小,会有可能复制的文件比原文件大。
            }
            fis.close();
        }
        fos.close();
    }
    static void createListFile(File file) throws IOException {
        FileWriter fw=new FileWriter(path);//将读取到的MP3文件的路径和名字存入该路径的文档中,即以上定义的全局路径。
        File files[] = file.listFiles();
        for(int i=0;i<files.length;i++){
            if(files[i].getName().endsWith(".mp3")){//这里endsWith的作用是实现只读取后缀为.mp3的文件。当然可以修改为自己所需的。
                String mp3FileName=files[i].getAbsolutePath();//getAbsolutePath()是读取文件的绝对路径,getName()是读取文件名字。可以取自己需要的。
                fw.write(mp3FileName);
                fw.write("\r");
                fw.write("\n");
            }
        }
        fw.close();
    }
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值