国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

java實(shí)現(xiàn)酷狗音樂(lè)臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法

2019-11-26 13:58:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了java實(shí)現(xiàn)酷狗音樂(lè)臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法。分享給大家供大家參考,具體如下:

酷狗臨時(shí)緩存文件,其實(shí)已經(jīng)是吧MP3文件下載好了,只是名字看上去好像是通過(guò)md5算法重命名的。

酷狗在緩存文件的時(shí)候會(huì)同時(shí)緩存歌詞。這個(gè)程序就是根據(jù)md5管理對(duì)應(yīng)的歌詞文件和緩存文件,然后把緩存文件改成 歌曲名+.mp3格式。

原諒我取這么長(zhǎng)也不知道對(duì)不對(duì)的類(lèi)名。

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;      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("http://"));        File mp3File = new File(path + "http://" + mp3name + ".mp3");        temp.renameTo(mp3File);      }      System.out.println(filename + " " + filemd5);      System.out.println(krcname + " " + mp3name + " " + krcmd5);    }  }  public void ChangeByDir(String tempPath,String krcPath){    Map<String,File> temps = fileMd5Map(tempPath);    Map<String,String> mp3Names = krcNameMd5Map(krcPath);    for(String key :temps.keySet()){      File f = temps.get(key);      if(f.exists()){        String path = f.getPath().substring(0,            f.getPath().lastIndexOf("http://"));        String mp3Name = mp3Names.get(key);        File mp3File = new File(path + "http://" + mp3Name + ".mp3");        if(f.renameTo(mp3File)){          System.out.println(f.getName()+" to "+mp3File.getName());          System.err.print("  SUCCESS");        }      }    }  }  public Map<String, File> fileMd5Map(String path) {    File dirFile = new File(path);    Map<String, File> map = null;    if (dirFile.isDirectory()) {      map = new HashMap<String, File>();      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<String,String> krcNameMd5Map(String path){    File dirFile = new File(path);    Map<String, String> map = null;    if (dirFile.isDirectory()) {      map = new HashMap<String, String>();      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) 方法只是用來(lái)測(cè)試用的。調(diào)一下字符串之類(lèi)的

主要使用ChangeByDir方法,參數(shù)是臨時(shí)文件的文件夾和歌詞文件的文件夾

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 土默特右旗| 高雄县| 昌吉市| 丰都县| 揭东县| 尉氏县| 喀喇| 博爱县| 玉树县| 台中市| 五大连池市| 牡丹江市| 宁乡县| 道孚县| 察雅县| 广州市| 巍山| 高密市| 南京市| 宜兰县| 图们市| 新田县| 将乐县| 永川市| 汾阳市| 灵宝市| 潼南县| 全椒县| 兴化市| 临安市| 乌兰察布市| 尉氏县| 龙胜| 驻马店市| 溆浦县| 溆浦县| 星子县| 西平县| 泰顺县| 正蓝旗| 修武县|