程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java完成酷狗音樂暫時緩存文件轉換為MP3文件的辦法

java完成酷狗音樂暫時緩存文件轉換為MP3文件的辦法

編輯:關於JAVA

java完成酷狗音樂暫時緩存文件轉換為MP3文件的辦法。本站提示廣大學習愛好者:(java完成酷狗音樂暫時緩存文件轉換為MP3文件的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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;
      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<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("\\"));
        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");
        }
      }
    }
  }
  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) 辦法只是用來測試用的。調一下字符串之類的

重要應用ChangeByDir辦法,參數是暫時文件的文件夾和歌詞文件的文件夾

願望本文所述對年夜家java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved