Este artigo descreve o método de conversão de arquivos de cache temporário da música kugou em arquivos MP3 em Java. Compartilhe -o para sua referência, como segue:
O arquivo de cache temporário do kugou já está baixado arquivos MP3, mas o nome parece ser renomeado pelo algoritmo MD5.
Kugou irá cache as letras ao mesmo tempo em que os arquivos em cache. Este programa gerencia os arquivos de letras e cache correspondentes com base no MD5 e, em seguida, altera o arquivo de cache para o nome da música +.mp3.
Perdoe -me por ter um nome de aula tão longo.
pacote com.zhou.run; importar java.io.file; importar java.util.hashmap; importar java.util.map; classe pública kugoutempfileTomp3andModifyNeToTroename {public static string kgtemp = ".kgtemp"; public Static String KRC = "KRC"; public void alteração (string temppath, string krcpath) {file temp = novo arquivo (temppath); Arquivo KRC = novo arquivo (KRCPath); if (temp.exists () && temp.getName (). endswith (kgtemp)) {string filename = temp.getName (); String filemd5 = nome do arquivo. if (! krc.exists ()) retornar; 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 ("//")); Arquivo mp3File = novo arquivo (caminho + "//" + mp3Name + ".mp3"); temp.renameto (mp3file); } System.out.println (nome do arquivo + "" + filemd5); System.out.println (krcname + "" " + mp3Name +" " + krcmd5);}} public void changeBydir (string temppath, string krcpath) {map <string, file> temps = filemd5map (temppath); map <string> mp3Names = krcnamemd5MAp (temppath); map <string> mp3Names = krcnamemd5M5 : temps.keyset ()) {arquivo f = temps.get (key); if (f.renameto (mp3file)) {System.out.println (f.getName ()+"para"+mp3file.getName (); (Dirfile.isdirectory ()) {map = novo hashmap <string, file> (); FileName.LastIndexOf (KGTemp)); Mapa <string, string> map = null; if (Dirfile.isDirectory ()) {map = new Hashmap <string, string> (); para (Arquivo F: Dirfile.ListFiles ()) {if (f.Exists () && f.isfile () && f.getName (). ENDSWITH (KRC)) {String krcName = f.getName (); if (! krcname.contains ("-")) continuar; String krcmd5 = krcname.substring (krcname.lastindexOf (" -") + 1, krcname.lastIndexOf (krc) - 1); String mp3Name = krcname.substring (0, krcname.lastIndexOf ("-")); map.put (krcmd5, mp3Name); }} retornar mapa; }} public static void main (string [] args) {kugoutempFileTomp3andModifyNeToTrueName ktf = new KugoutempFileTomp3andModifyNeToTroename (); /*String temppath = "d: /kugou/mp3/2fad259e357078e89404be12e1fd7ae3.kgtemp"; String krcpath = "d:/kugou/letra/jay chou, yuan yonglin-what horda-2fad259e357078e89404be12e1fd7ae3.krc"; ktf.change (temppath, krcpath);*/string tempdir = "d:/kugou/mp3"; String krcdir = "d:/kugou/letra"; KTF.CHANCEBYDIR (Tempdir, Krcdir);}O método de alteração (string, string) é usado apenas para teste. Ajuste as cordas ou algo assim
Use principalmente o método ChangeByDir, os parâmetros são pastas de arquivos temporários e pastas de arquivos de letras
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.