この記事では、Kugou Musicの一時的なキャッシュファイルをJavaのMP3ファイルに変換する方法について説明します。次のように、参照のために共有してください。
kugou一時キャッシュファイルは実際には既にダウンロードされているmp3ファイルですが、名前はmd5アルゴリズムを介して名前が変更されているようです。
Kugouは、キャッシュされたファイルのときに歌詞をキャッシュします。このプログラムは、MD5に基づいて対応する歌詞とキャッシュファイルを管理し、キャッシュファイルをSong name +.mp3形式に変更します。
このような長いクラスの名前を取ることを許してください。
パッケージ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);ファイル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);文字列mp3Name = krcname.substring(0、krcname.lastindexof( " - ")); if(krcmd5.equals(filemd5)){string path = temp.getPath()。substring(0、temp.getPath()。lastIndexof( "//"));ファイルmp3file = newファイル(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); :temps.keyset()){file f = temps.get(key); (f.renameto(mperfile)){system.out.println()+"+mp3.getname()); (dirfile.isdirectory()){map = new hashmap <string、file>(); filename.lastindexof(kgtemp)); 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( " - "))継続; string krcmd5 = krcname.substring(krcname.lastindexof( " - ") + 1、krcname.lastindexof(krc)-1);文字列mp3Name = krcname.substring(0、krcname.lastindexof( " - ")); map.put(krcmd5、mp3Name); }}マップを返します。 }} public static void main(string [] args){kugoutempfiletomp3andModifynametotruename ktf = new kugoutempfiletomp3andModifyNameTrueName(); /*string temppath = "d:/kugou/mp3/2fad259e357078e89404be12e1fd7ae3.kgtemp"; string krcpath = "d:/kugou/lyric/jay chou、yuan yonglin-何が間違っているのか2fad259e357078e89404be12e1fd7ae3.krc"; ktf.change(temppath、krcpath);*/string tempdir = "d:/kugou/mp3"; string krcdir = "d:/kugou/lyric"; ktf.changebydir(tempdir、krcdir);}変更(文字列、文字列)メソッドは、テストにのみ使用されます。文字列か何かを調整します
主にChangeBydirメソッドを使用して、パラメーターは一時ファイルのフォルダーと歌詞ファイルのフォルダーです
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。