翻出了4年前买的ipod shuffle,想起高中时候拿老人机上学,自己悄咪咪的买了个shuffle来听歌
然后现在给shuffle连上了电脑,但是里面的歌曲因为苹果的原因全都是一些什么四个大写英文字母,根本不知道这首歌是什么歌,然后歌曲又太多一个个改忒麻烦。
于是我就想到用Java来写一个程序,帮助我一次性修改这些文件名。

首先下载JAudioTagger.jar库,下载地址

(1)这个类是用来方便查找歌曲名+其他各种信息的

public class Tag {private String SongName;private String Artist;private String Album;private String length;public String getSongName() {return SongName;}public String getArtist() {return Artist;}public void setArtist(String artist) {Artist = artist;}public void setSongName(String songName) {SongName = songName;}public String getAlbum() {return Album;}public void setAlbum(String album) {Album = album;}public String getLength() {return length;}public void setLength(String length) {this.length = length;}}

(2)这个类是用来读取MP3文件并搜索其信息的

package com.example.util;import java.io.IOException;import org.jaudiotagger.audio.exceptions.CannotReadException;
import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
import org.jaudiotagger.audio.mp3.MP3File;
import org.jaudiotagger.tag.TagException;import com.example.entity.Tag;public class TagInfoUtil {public static Tag Mp3InfoRead(String path) {MP3File file;try {file = new MP3File(path);String songName = file.getID3v2Tag().frameMap.get("TIT2").toString();String artist = file.getID3v2Tag().frameMap.get("TPE1").toString();String album = file.getID3v2Tag().frameMap.get("TALB").toString();String length = file.getMP3AudioHeader().getTrackLengthAsString();songName = songName.substring(6, songName.length() - 3);// 歌名artist = artist.substring(6, artist.length() - 3);// 歌手名album = album.substring(6, album.length() - 3);// 唱片集名Tag tag = new Tag();tag.setSongName(songName);tag.setAlbum(album);tag.setArtist(artist);tag.setLength(length);// System.out.println("歌名" + songName);// System.out.println("歌手" + artist);// System.out.println("专辑:" + album);return tag;} catch (IOException | TagException | ReadOnlyFileException| CannotReadException | InvalidAudioFrameException| NullPointerException e) {e.printStackTrace();throw new RuntimeException("获取Mp3 tag信息出错!");}}
}

(3)文件夹读取类,这里是读取文件夹!不要用单个文件

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;import com.example.entity.Tag;
import com.example.util.TagInfoUtil;public class ReadFile {public static boolean NameAlter(String filepath)throws FileNotFoundException, IOException {try {TagInfoUtil mp = new TagInfoUtil();File file = new File(filepath);if (file.isDirectory()) {System.out.println("开始修改文件名");String[] filelist = file.list();for (int i = 0; i < filelist.length; i++) {File readfile = new File(filepath + "\\" + filelist[i]);// 读取一个MP3文件if (!readfile.getName().contains(".mp3")) {readfile.delete();// 如果不是MP3文件就删掉continue;}if (!readfile.isDirectory()) {// System.out.println("path=" + readfile.getPath());// System.out.println(// "absolutepath=" + readfile.getAbsolutePath());// System.out.println("name=" + readfile.getName());Tag t = mp.Mp3InfoRead(readfile.getAbsolutePath());File newFile = new File(filepath + File.separator + t.getSongName()+ "-" + t.getArtist() + ".mp3");// 重命名格式为// 歌名-歌手if (readfile.renameTo(newFile)) {System.out.println("success");} else {System.out.println("dissuccess");}}}}} catch (Exception e) {System.out.println("readfile() Exception:" + e.getMessage());}return true;}}

(4)测试用

import java.io.FileNotFoundException;
import java.io.IOException;public class test {public static void main(String[] args)throws FileNotFoundException, IOException {String filename = "G:\\music";ReadFile.NameAlter(filename);}
}

有一些MP3文件有问题,会出现NullPointException,有可能是文件出现问题,导致文件指针找不到,这样的话手动修改吧,反正也不多。

用Java重命名MP3歌曲文件相关推荐

  1. java重命名_java实现文件重命名的方法

    本文实例讲述了java实现文件重命名的方法.分享给大家供大家参考.具体如下: 下载的电影总是有一些存在网站名称等没用的信息 作为一个强迫症患者 一定要删除他们 package sys.file; im ...

  2. 随机重命名MP3文件

    新置MP3一件,居然没有随机播放的功能,坑啊!身为程序媛一枚,自己动手吧~ 获取当前路径: [cpp] view plaincopy char buf[1000]; GetCurrentDirecto ...

  3. java 批量重命名_Java实现文件批量重命名

    Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...

  4. python重命名文件或目录_Python重命名多个文件的实例方法

    Python中如何重命名多个文件 在Python3中可以使用rename()方法+listdir()方法来重命名多个文件,这两个方法都是os模块的一部分,非常方便.下面本篇文章就来带大家了解一下ren ...

  5. linux怎么重命名多个文件,在Linux中如何一次重命名多个文件详解

    前言 在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等. 你可能已经知道,我们使用 mv 命令在类 Unix 操作系统中重命名或者移动 ...

  6. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

  7. python输入文件名读取文件_[Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等...

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  8. ndows10同时打印多份文档,Windows10如何同时重命名多个文件

    在Win10系统中整理重要文件时,很多用户都会对文件进行重命名,以便节省更多的时间.而如果文件数量非常多的话,我们就需要对其进行批量重命名.那么,这该如何操作呢?今天,小编就给大家分享一下Win10系 ...

  9. iPhone文件系统:创建、重命名以及删除文件

    iPhone文件系统:创建.重命名以及删除文件 NSFileManager中包含了用来查询单词库目录.创建.重命名.删除目录以及获取/设置文件属性的方法(可读性,可编写性等等). 每个程序都会有它自己 ...

最新文章

  1. java条件查询excel_[转]EXCEL中的多条件查询(整理)
  2. stm32 JTag 错误
  3. php cli 判断,php cli 命令行详解【转】
  4. 异步广度优先搜索算法
  5. Redux 中 combineReducers实现原理
  6. python的变量名可以是中文吗_Python中用中文变量名、函数名,会影响性能吗?
  7. Visio图片导入到Word里面的步骤
  8. socksCap32+socks2http软件
  9. Solved: RDP Disconnected – Error Code 2825 mremote
  10. 新西兰计算机预科学费多少钱,去新西兰读预科需要多少费用?
  11. 计算机网络第三章数据链路层习题答案
  12. react-redux——使用redux——使用react-redux这个扩展简化操作
  13. ubuntu20.04安装NVIDIA显卡驱动 /dev/nvme0n1p8:clean
  14. TTL与CMOS的区别
  15. 【Python】Python系列教程-- Python3 编程第一步(十八)
  16. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第54讲:PHP smarty模板内建函数
  17. 如何查看电脑的配置-卖电脑必备(尤其二手)
  18. 德国精品软件 极品系统优化软件 TuneUp Utilities
  19. 南北朝时期中国茶业概况
  20. css3自定义滚动条样式写法

热门文章

  1. AI智慧安监平台EasyCVR新版本v3.3如何接入V1版智能分析网关硬件?
  2. 永久设置ubuntu ulimit
  3. 世界最快服务器,IBM推出世界最快UNIX服务器
  4. ubuntu windows双系统默认启动项轻松切换
  5. CCTV-TIME特别关注:首届医药港国际健康美食文化嘉年华
  6. java的setvisible_setVisible(true)后还是看不见框架
  7. 性能测试、负载测试、压力测试、稳定性测试?
  8. 计算机协会社团学年总计划,计算机协会学年工作计划
  9. spring 怎样判断数据是否变化_怎样判断辽砚是否是珍品?
  10. ShareSDK社会化分享之那些年我们踩过的坑