一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現酷狗音樂臨時緩存文件轉換為MP3文件的方法

java實現酷狗音樂臨時緩存文件轉換為MP3文件的方法

2020-06-05 15:03k55k3 JAVA教程

這篇文章主要介紹了java實現酷狗音樂臨時緩存文件轉換為MP3文件的方法,涉及java針對文件操作的相關技巧,需要的朋友可以參考下

本文實例講述了java實現酷狗音樂臨時緩存文件轉換為MP3文件的方法。分享給大家供大家參考,具體如下:

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

酷狗在緩存文件的時候會同時緩存歌詞。這個程序就是根據md5管理對應的歌詞文件和緩存文件,然后把緩存文件改成 歌曲名+.mp3格式。

原諒我取這么長也不知道對不對的類名。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费网站看v片在线成人国产系列 | 日韩欧美亚洲一区精选 | 热99这里有精品综合久久 | 久久热r在线视频精品 | 美女精品永久福利在线 | 美女脱一光二净的视频 | 日韩理论在线观看 | 羞羞答答免费人成黄页在线观看国产 | 成 人免费va视频 | 亚洲激情一区 | 日本大尺度动漫在线观看缘之空 | 日本三级免费观看 | 国产视频久久久久 | 午夜宅男网 | 91最新高端约会系列178 | 毛片网站免费观看 | 国产成人精品s8sp视频 | 天天综合网天天做天天受 | 高清国语自产拍免费视频国产 | 美女裆部 | 色老板在线免费视频 | 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 国产精品久久久久无毒 | 成 人免费va视频 | 久久久久久久久女黄9999 | 我们中文在线观看免费完整版 | 涩涩屋在线观看 | 青草免费在线 | 青山葵在线 | 操熟美女又肥又嫩的骚屁股 | 变态 另类 人妖小说 | 精品人伦一区二区三区潘金莲 | 污污动图| 暴露狂婷婷 | 亚洲好色网 | 国产精品免费aⅴ片在线观看 | 偷偷狠狠的日日高清完整视频 | 精品久久久久久久久免费影院 | 久久学生精品国产自在拍 | 国产裸舞在线一区二区 | 99国内精品久久久久久久黑人 |