De vakantie periode komt eraan en dan wil je wat leuke muziek op je iPod hebben. Het overzetten naar de iPod gaat makkelijk met playlists in m3u formaat. Maar, je wilt de muziek wel indelen in aparte playlists met aparte genres. Daarvoor maak ik eerst een playlist met alle muziek waarna ik steeds uit die basisplaylist de nummers er uit haal die in een bepaalde playlist moeten. Achteraf wil ik dan de basisplaylist aanpassen door de nummers daaruit te halen die nu in de juiste (nieuwe) playlist zitten. Zo weet ik zeker dat ik achteraf alle nummers uit de basisplaylist heb ingedeeld in een andere playlist. In Winamp kon ik daar geen functie voor vinden dus ik besloot zelf maar wat te schrijven in Java. Een playlist is van het volgende formaat:
De volgende code loopt elke line in de basisplaylist (behalve de eerste) af en bekijkt of deze line ook voorkomt in de nieuwe playlist. Als dit zo is, dan wordt deze line niet geschreven naar de nieuwe playlist en wordt de volgende line bekeken. Uiteindelijk zou dit dan de basisplaylist min de nieuwe playlist moeten opleveren.
Het probleem is echter dat het resultaat precies een grootte van 8kb heeft waarin niet alles staat wat er in zou moeten staan. De System.out.println geeft echter wel de juiste informatie! Ik heb andere wrappers geprobeerd maar dit lost niks op. Via Google en GoT kan ik niks vinden over deze schijnbare beperking. Weet iemand iets over deze beperking?
code:
1
2
3
4
5
6
7
| #EXTM3U #EXTINF:206,Acda & de Munnik - Foto's Van Vandaag F:\Acda En De Munnik - Foto's Van Vandaag.mp3 #EXTINF:201,Acda en de Munnik - Ik Weet Het Beter F:\Acda en de Munnik - Ik Weet Het Beter.mp3 #EXTINF:193,Acda en de Munnik - Misschien wel niets F:\Acda en de Munnik - Misschien wel niets.mp3 |
De volgende code loopt elke line in de basisplaylist (behalve de eerste) af en bekijkt of deze line ook voorkomt in de nieuwe playlist. Als dit zo is, dan wordt deze line niet geschreven naar de nieuwe playlist en wordt de volgende line bekeken. Uiteindelijk zou dit dan de basisplaylist min de nieuwe playlist moeten opleveren.
Java:
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
| public static void substract(File base, File substract) throws IOException { BufferedReader readerBase = new BufferedReader(new FileReader(base)); String line; PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(new File("substracted.m3u")))); writer.println(readerBase.readLine()); while((line = readerBase.readLine()) != null) { if(!inFile(line, substract)) { System.out.println(line); writer.println(line); } } readerBase.close(); } public static boolean inFile(String baseLine, File substract) throws IOException { boolean result = false; BufferedReader readerSubstract = new BufferedReader(new FileReader(substract)); String line; readerSubstract.readLine(); while((line = readerSubstract.readLine()) != null && !result) { result = baseLine.equals(line); } readerSubstract.close(); return result; } |
Het probleem is echter dat het resultaat precies een grootte van 8kb heeft waarin niet alles staat wat er in zou moeten staan. De System.out.println geeft echter wel de juiste informatie! Ik heb andere wrappers geprobeerd maar dit lost niks op. Via Google en GoT kan ik niks vinden over deze schijnbare beperking. Weet iemand iets over deze beperking?