自己写了个程序,从某台歌词服务器上下载了近一万首歌词(二十个线程,不到一个小时的时间)但是歌词的文件名都是数字 ,类似1.lrc、2.lrc……
歌词文件内容格式如下:
[ar:阿杜]
[ti:黄昏]
[hash:845f72c1f9a16c520463846e203039d2]
[total:260780]
[00:22.31] 下着雨的天气
[00:25.54] 好象你可爱的坏脾气
[00:30.35] 我的爱我的心
[00:33.55] 早就已经交给了你
[00:37.42] 你说我很不错
[00:40.72] 是不是在暗示什么
其中[ar:] 里面的是 歌曲的演唱者 [ti:]里面的是歌曲名。不过有些没有[ar:] 或[ti:]标记
现在想把这些歌词文件 用其内容 命名成 【演唱者 - 歌曲名】 的格式,以下是java的实现
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
public class Rename {
/**
* @param args
*/
public static void main(String[] args) {
File file = new File("d:/aaa/"); //歌词存放路径
long start = System.currentTimeMillis();
File[] fList = file.listFiles(new FilenameFilter() { //过滤文件,只处理 lrc格式的
@Override
public boolean accept(File dir, String name) {
if (!name.endsWith(".lrc"))
return false;
return true;
}
});
byte[] buf = new byte[1000];
for (int i = 0; i < fList.length; i++) {
try {
FileInputStream fis = new FileInputStream(fList[i]);
int length = fis.read(buf, 0, buf.length); //将文件开头的1000个字节读入到buf里
fis.close();
String tmp = new String(buf, 0, length);
rename(fList[i], tmp); // 重命名
} catch (Exception e) {
System.out.println(e);
}
}
long usedTime = System.currentTimeMillis()-start;
System.out.println("用时:"+usedTime);
}
public static void rename(File file, String str) {
String fullname = "";
String artist = "";
String name = "";
if (-1 != str.indexOf("[ar:")) {
String tmp = str.substring(str.indexOf("[ar:"), str.length());
artist = tmp.substring(0, tmp.indexOf("]"))
.replaceAll("\\[ar:", "");
if (-1 != str.indexOf("[ti:")) {
String tmp2 = str.substring(str.indexOf("[ti:"), str.length());
name = tmp2.substring(0, tmp2.indexOf("]")).replaceAll(
"\\[ti:", "");
fullname = artist + " - " + name;
} else {
fullname = artist + " - 未知歌名";
}
} else {
if (-1 != str.indexOf("[ti:")) {
String tmp2 = str.substring(str.indexOf("[ti:"), str.length());
name = tmp2.substring(0, tmp2.indexOf("]")).replaceAll(
"\\[ti:", "");
fullname = "未知歌手 - " + name;
}
}
if (!"".equals(fullname)) {
file.renameTo(new File(file.getParent() + fullname + ".lrc"));
}
}
}
经实际测试,处理近10000个文件 实际用时 不到一秒!
分享到:
相关推荐
本项目是一个基于Java语言开发的智能涂鸦库,它提供了完整的源码以及相关配置文件,总共涉及137个文件。在这些文件中,有49个是核心的Java源代码文件,它们构成了智能涂鸦库的主体功能和逻辑;34个XML配置文件可能...
这个源代码包,"Java文件分割程序源代码.rar",提供了实现这一功能的Java编程逻辑,可以跨多个平台运行,这得益于Java的“一次编写,到处运行”特性。它还特别提到与CofeCut兼容的切割算法,这意味着该程序可能采用...
"AIin_java.rar"这个压缩包文件显然包含了与Java实现人工智能相关的源代码示例,特别强调了其简单易懂的特点,适合初学者和对AI感兴趣的开发者参考。 首先,我们来看"Practical_ai_programming_in_java"这个文件名...
"dl4s"可能代表"深度学习for搜索引擎",文件可能包含实现上述概念的源代码示例。通过阅读和理解这些代码,开发者可以学习如何在Java环境中整合深度学习技术来构建搜索引擎。 总之,深度学习搜索引擎开发涉及深度...
`RandomAccessFile`是Java中用于随机访问文件的类,它实现了`DataInput`和`DataOutput`接口,允许程序读写文件。该类支持随机访问模式,即可以定位到文件的任意位置进行读写操作,适用于大数据量文件的处理。 #### ...
在Java项目中,这通常是一个包含源代码(.java文件)、编译后的字节码(.class文件)、配置文件(如XML)以及可能的测试代码和数据的结构。Alice目录可能下设src、lib、test等子目录,分别存放源码、依赖库和测试...
通过阅读和分析这些Java文件,可以获得对如何用Java实现特定功能模块的深入了解。 XML配置文件和menudata文件可能用于存储系统的配置信息和菜单数据,这些配置信息对于系统的运行至关重要,它们可以定义系统的行为...
该系统设计的细节体现在每一个文件的命名和编码上,这些文件共同构成了一套完整的智能水肥管理系统。系统的实施可以为农业生产提供科学的灌溉和施肥建议,保证作物在不同生长阶段得到适量的水分和养分供应,从而实现...
根据命名规则,这个文件可能是与系统运行相关的数据库文件或者是后端逻辑的中间件文件。此外,“jsp开发说明.docx”文件详细记录了系统的开发背景、设计理念、具体实现方法等,是系统开发和维护的宝贵资料。 总结...
此外,源码包中的文件数量和类型也反映了该系统在设计上的细致考虑,文件命名的一致性与规范性表明开发团队遵循了良好的项目管理实践,这些都有助于后续的系统维护和功能扩展。 通过对tilas智能辅助学习系统设计...
本次分析的项目是一个基于Java实现的五子棋人机对弈游戏,它不仅提供了实际操作的平台,还通过详细的代码注释使得教学更加直观有效。 五子棋是一种两人对弈的纯策略型棋类游戏,有着悠久的历史和广泛的人群基础,其...
总的来说,华为智能计算培训的Java课程涵盖了Java语言的基础知识、核心概念以及其在智能计算领域的应用。通过深入学习,开发者可以构建高效、可移植的软件解决方案,并利用Java的强大功能在各种计算环境中发挥作用。
这些管理界面的样式文件以.css格式存在,具体包括了chunk-vendors、app、419、672、806、596、387等以不同哈希值命名的样式文件,它们分别控制着系统各个部分的视觉表现。 在客户端代码(client_code)中,包含了...
该项目以EasyAI命名,强调了人工智能(AI)技术在Java开发中的易用性和可行性。从给出的文件名称列表来看,这个资源包包含了Maven项目结构,因此可以通过Maven来管理项目的依赖关系和构建过程。 具体来说,pom.xml...
本文将围绕“基于JAVAssm框架的仓库智能仓储系统.zip”这一主题,详细探讨其开发文档、演示文稿及相关源码文件等核心内容。 首先,需要指出的是,JAVAssm框架是一种集成了多种现代软件设计模式的Java框架,它能够...
Java的命名来源于印度尼西亚的一个岛屿——爪哇岛,意在象征着为用户带来如同咖啡般的清新体验。 #### 二、Java的组成部分 1. **Java语言**:一种面向对象的编程语言,支持多种操作系统和设备上的应用开发。 2. **...
在"Java_人工智能工程的应用框架.zip"这个压缩包中,我们有两个主要的文件:"说明.txt"和"spring-ai_main.zip"。下面将详细讨论Java在人工智能中的应用框架及其相关知识点。 首先,Java作为一种跨平台、面向对象的...
而Java语言的运用,则展示了其在复杂业务逻辑处理和数据管理上的优势,206个Java文件为系统提供了稳定可靠的数据处理和业务逻辑支持。CSS文件则负责整个系统的样式布局,确保了用户界面的一致性和美观性,共有163个...