Hogyan oldhatom meg ezt Javában?
Egy olyan programról lenne szó, amely egy mp3 fájl tagjeit írja felül, vagy ha nincs, beilleszti. Az elmélet a megoldásra meg is van. Viszont nem tudom, hogyan oldjam meg hogy az utolsó 128 bájtra ugorjak egyből. A skip() függvényt nem használhatom, mert a FileOutputStream olyat nem tartalmaz. A forráskód:
import java.io.*;
class WriteTags {
public static void main(String args[]){
try{
File song=new File(args[0]);
FileOutputStream songStream=new FileOutputStream(song);
String tag="TAG";
String title=args[1];
String artist=args[2];
String album=args[3];
String year=args[4];
String id3=tag+title+artist+album+year;
byte[] id3bytes=id3.getBytes("US-ASCII");
songStream.write(id3bytes);
songStream.close();
}
catch(FileNotFoundException fnfe){
Systen.out.println("FileNotFoundException: " +fnfe);
}
catch(IOException ioex){
System.out.println("IOException: " + ioex);
}
}
}
Kipróbáltam már egyszer ebben a verzióban, de annyit csinált, hogy gyakorlatilag beírta a bájtokat at mp3 fájl elejére, a többi részét meg törölte. Hogyan oldhatom meg, hogy a végéhez fűzze ezeket hozzá?
Az a baj, hogy a stream egy adatfolyam, nem tudsz benne csak úgy ugrálni.
Ha csak a végére kell fűzni. akkor a FileOutputStream konstruktorába megadhatod a 2. boolean paramétert igazra:
( [link] boolean) )
Ekkor hozzá fog fűzni a fájlhoz az adatokat.
De egy másik tipp, vannak erre már készen libek, amikkel lehet ilyen ID3 tageket szerkeszteni!
Pl.: [link]
Akár ezekből is ellesheted a megoldásokat, ha mindenképpen sajátot akarsz.
"Viszont nem tudom, hogyan oldjam meg hogy az utolsó 128 bájtra ugorjak egyből."
A fájlt beolvashatod egy byte tömbbe, amit már tudsz kedvedre indexelni...
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!