Este artículo describe el método de convertir archivos de caché temporal de Kugou Music en archivos MP3 en Java. Compártelo para su referencia, como sigue:
El archivo de caché temporal de Kugou ya ya está descargado de archivos MP3, pero el nombre parece cambiarse a través del algoritmo MD5.
Kugou almacenará en caché las letras al mismo tiempo que los archivos en caché. Este programa gestiona las letras y los archivos de caché correspondientes basados en MD5, y luego cambia el archivo de caché al nombre de la canción +.mp3.
Perdóname por tomar un nombre de clase tan largo.
paquete com.zhou.run; import java.io.file; import java.util.hashmap; import java.util.map; clase pública kugoutempfiletomp3andmodifynametotrUename {public static string kgtemp = ".kgtemp"; cadena estática pública krc = "krc"; public void Change (String TEMPPATH, String KRCPATH) {Archivo temp = nuevo archivo (TEMPPATH); Archivo krc = nuevo archivo (krcpath); if (temp.exists () && temp.getName (). Endswith (kgtemp)) {string filename = temp.getName (); Cadena filemd5 = filename .substring (0, filename.lastIndexof (kgtemp)); if (! krc.exists ()) return; Cadena krcname = krc.getName (); Cadena krcmd5 = krcname.substring (krcname.lastindexof (" -") + 1, krcname.lastindexof (krc) - 1); Cadena mp3name = krcname.substring (0, krcname.lastindexof ("-")); if (krcmd5.equals (filemd5)) {string path = temp.getPath (). subString (0, temp.getPath (). dastIndexof ("//")); Archivo mp3file = nuevo archivo (ruta + "//" + mp3name + ".mp3"); temp.renameto (mp3file); } System.out.println (nombre de archivo + "" + filemd5); System.out.println (Krcname + + "" " + mp3name +" " + krcmd5);}} public void ChangeDir (String Temppath, String Krcpath) {map <String, file> Temps = filemd5Map (temppath); map <String, string> mp3names = krcnamemd5map (krcppat : temps.keyset ()) {archivo f = temps.get (key); if (f.Renameto (mp3file)) {System.out.println (f.getName ()+"+mp3file.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 (archivo f: dirfile.listFiles ()) {if (f.Exists () && f.ISfile () && f.getName (). Endswith (krc)) {string krcname = f.getName (); if (! krcname.contains ("-")) continuar; Cadena krcmd5 = krcname.substring (krcname.lastindexof (" -") + 1, krcname.lastindexof (krc) - 1); Cadena mp3name = krcname.substring (0, krcname.lastindexof ("-")); map.put (krcmd5, mp3name); }} mapa de retorno; }} public static void main (string [] args) {kugoutempfiletomp3andmodifynametotrUename ktf = new Kugoutempfiletomp3andModifynametotrUename (); /*String TEMPPATH = "D: /kugou/mp3/2fad259e357078e89404be12e1fd7ae3.kgtemp"; String krcpath = "d:/kugou/lyric/jay chou, yuan yonglin-qué está mal-2fad259e357078e89404be12e1fd7ae3.krc"; ktf.change (temppath, krcpath);*/string tempdir = "d:/kugou/mp3"; Cadena krcdir = "d:/kugou/lyric"; ktf.changeBydir (Tempdir, krcdir);}El método Change (String, String) solo se usa para las pruebas. Ajuste las cuerdas o algo
Usar principalmente el método ChangeByDir, los parámetros son carpetas de archivos temporales y carpetas de archivos de letras
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.