تصف هذه المقالة طريقة تحويل ملفات ذاكرة التخزين المؤقت المؤقتة لموسيقى Kugou إلى ملفات MP3 في Java. شاركه للرجوع إليه ، على النحو التالي:
يتم بالفعل تنزيل ملف Kugou المؤقت للتخزين المؤقت بالفعل من ملفات MP3 ، ولكن يبدو أن الاسم يتم إعادة تسميته من خلال خوارزمية MD5.
سوف يقوم Kugou بتخزين كلمات الأغاني في نفس الوقت الذي تم فيه تخزينه مؤقتًا. يدير هذا البرنامج كلمات الأغاني المقابلة وملفات ذاكرة التخزين المؤقت بناءً على MD5 ، ثم يغير ملف ذاكرة التخزين المؤقت إلى تنسيق اسم الأغنية +.mp3.
سامحني لأخذ مثل هذا الاسم الطويل.
package com.zhou.run ؛ import java.io.file ؛ import java.util.hashmap ؛ import java.util.map ؛ public class kugoutempfiletomp3andmodifynametruename {public static kgtemp = ".kgtemp" ؛ السلسلة الثابتة العامة KRC = "KRC" ؛ تغيير الفراغ العام (سلسلة temppath ، سلسلة krcpath) {file temp = file new (temppath) ؛ ملف krc = ملف جديد (krcpath) ؛ if (temp.exists () && temp.getName (). endswith (kgtemp)) {string filename = temp.getName () ؛ String fileMd5 = filename .SubString (0 ، filename.lastindexof (kgtemp)) ؛ if (! krc.exists ()) العودة ؛ 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 = ملف جديد (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 ، mp3namp : temps.keyset ()) {file f = key) ؛ if (f.renameto (mp3file) {system.out.println ( (dirfile.isdirectory ()) {map = new hashmap <string ، file> () ؛ filename.lastindexof (kgtemp) ؛ الخريطة <string ، string> map = null ؛ if (dirfile.isdirectory ()) {map = new hashMap <string ، string> () ؛ لـ (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) {kugoutempfileTomp3andModifynametRuEname ktf = new KugoutempFileTomp3andModifynametRuEname () ؛ /*String temppath = "D: /Kugou/mp3/2fad259e357078e89404be12e1fd7ae3.kgtemp" ؛ String krcpath = "D:/Kugou/Lyric/Jay Chou ، Yuan Yonglin-What's Orgen-2FAD259E357078E89404BE12E1FD7AE3.KRC" ؛ ktf.Change (temppath ، krcpath) ؛*/string tempdir = "d:/kugou/mp3" ؛ String krcdir = "d:/kugou/lyric" ؛ KTF.CHANGEBYDIR (TEMPDIR ، KRCDIR) ؛}يتم استخدام طريقة التغيير (السلسلة ، السلسلة) فقط للاختبار. ضبط السلاسل أو شيء من هذا القبيل
استخدم طريقة ChangeBydir بشكل أساسي ، فإن المعلمات هي مجلدات من الملفات والمجلدات المؤقتة لملفات كلمات الأغاني
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.