多平台统一管理软件接口,如何实现多平台统一管理软件接口
303
2023-07-09
java实现酷狗音乐临时缓存文件转换为MP3文件的方法
本文实例讲述了java实现酷狗音乐临时缓存文件转换为MP3文件的方法。分享给大家供大家参考,具体如下:
酷狗临时缓存文件,其实已经是吧MP3文件下载好了,只是名字看上去好像是通过md5算法重命名的。
酷狗在缓存文件的时候会同时缓存歌词。这个程序就是根据md5管理对应的歌词文件和缓存文件,然后把缓存文件改成 歌曲名+.mp3格式。
原谅我取这么长也不知道对不对的类名。
package com.zhou.run;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class KugouTempFileToMp3AndModifyNameToTrueName {
public static String KGTEMP = ".kgtemp";
public static String KRC = "krc";
public void Change(String tempPath, String krcPath) {
File temp = new File(tempPath);
File krc = new File(krcPath);
if (temp.exists() && temp.getName().endsWith(KGTEMP)) {
String filename = temp.getName();
String filemd5 = filename
.substring(0, filename.lastIndexOf(KGTEMP));
if (!krc.exists())
return;
http:// String krcname = krc.getName();
String krcmd5 = krcname.substring(krcname.lastIndexOf("-") + 1,
krcname.lastIndexOf(KRC) - 1);
String mp3name = krcname.substring(0, krcname.lastIndexOf("-"));
if (krcmd5.equals(filemd5)) {
String path = temp.getPath().substring(0,
temp.getPath().lastIndexOf("\\"));
File mp3File = new File(path + "\\" + mp3name + ".mp3");
temp.renameTo(mp3File);
}
System.out.println(filename + " " + filemd5);
System.out.println(krcname + " " + mp3name + " " + krcmd5);
}
}
public void ChangeByDir(String tempPath,String krcPath){
Map
Map
for(String key :temps.keySet()){
File f = temps.get(key);
ifNyQRFoib(f.exists()){
String path = f.getPath().substring(0,
f.getPath().lastIndexOf("\\"));
String mp3Name = mp3Names.get(key);
File mp3File = new File(path + "\\" + mp3Name + ".mp3");
if(f.renameTo(mp3File)){
System.out.println(f.getName()+" to "+mp3File.getName());
System.err.print(" SUCCESS");
NyQRFoib }
}
}
}
public Map
File dirFile = new File(path);
Map
if (dirFile.isDirectory()) {
map = new HashMap
for (File f : dirFile.listFiles()) {
if (f.exists()&&f.isFile()&& f.getName().endsWith(KGTEMP)) {
String filename = f.getName();
String filemd5 = filename.substring(0,
filename.lastIndexOf(KGTEMP));
map.put(filemd5, f);
}
}
}
return map;
}
public Map
File dirFile = new File(path);
Map
if (dirFile.isDirectory()) {
map = new HashMap
for (File f : dirFile.listFiles()) {
if (f.exists()&&f.isFile()&& f.getName().endsWith(KRC)) {
String krcname = f.getName();
if(!krcname.contains("-"))continue;
String krcmd5 = krcname.substring(krcname.lastIndexOf("-") + 1,
krcname.lastIndexOf(KRC) - 1);
String mp3name = krcname.substring(0, krcname.lastIndexOf("-"));
map.put(krcmd5, mp3name);
}
}
}
return map;
}
}
public static void main(String[] args) {
KugouTempFileToMp3AndModifyNameToTrueName ktf = new KugouTempFileToMp3AndModifyNameToTrueName();
/*String tempPath = "D:/KuGou/mp3/2fad259e357078e89404be12e1fd7ae3.kgtemp";
String krcPath ="D:/KuGou/Lyric/周杰伦、袁咏琳 - 怎么了-2fad259e357078e89404be12e1fd7ae3.krc";
ktf.Change(tempPath,krcPath);*/
String tempDir ="D:/KuGou/mp3";
String krcDir="D:/KuGou/Lyric";
ktf.ChangeByDir(tempDir, krcDir);
}
Change(string,string) 方法只是用来测试用的。调一下字符串之类的
主要使用ChangeByDir方法,参数是临时文件的文件夹和歌词文件的文件夹
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~