一个比较简单的程序,没有用多少东西,只是想知道一下会不会出结果而以。

累是挺累的,不过还是感觉很有激情!
写这个读mp3文件ID3V1的一点信息的,感觉不错!
最近在用 Swing 写一个MP3文件根据标签信息重命名的程序,这么一听的话感觉似乎不是很难,但实际过程中却碰到了很多问题,都有待于我一个一个去解决!
这次在寻找帮助时有一个犯了个很大的毛病就是没有把一些好的文章存或者是链接下来。
别的先不说的,先把读MP3文件头部信息的程序贴出来:

读 MP3 文件的头信息(ID3V1)(图一)读 MP3 文件的头信息(ID3V1)(图二)/**//**
读 MP3 文件的头信息(ID3V1)(图三) * Created on 2005-8-6 5:10:29
读 MP3 文件的头信息(ID3V1)(图三) * @author 糊涂鬼
读 MP3 文件的头信息(ID3V1)(图四) */
读 MP3 文件的头信息(ID3V1)(图一)读 MP3 文件的头信息(ID3V1)(图二)public class ReadMp3ID3v1Info 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TAG_SIZE = 128;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TITLE_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int ARTIST_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int ALBUM_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int YEAR_SIZE = 4;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int COMMENT_SIZE = 29;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TRACK_LOCATION = 126;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int GENRE_LOCATION = 127;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int MAX_GENRE = 255;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int MAX_TRACK = 255;
读 MP3 文件的头信息(ID3V1)(图三)    private static final String ENC_TYPE = "Cp437";
读 MP3 文件的头信息(ID3V1)(图三)    private static final String TAG_START = "TAG";
读 MP3 文件的头信息(ID3V1)(图三)    
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)    public static void main(String[] args)读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)        try 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图三)            File mp3 = new File("F:/音乐/MP3/英文女歌手/Madonna - Music.mp3");
读 MP3 文件的头信息(ID3V1)(图三)            RandomAccessFile raf = new RandomAccessFile( mp3, "r" );
读 MP3 文件的头信息(ID3V1)(图三)            raf.seek(raf.length() - TAG_SIZE);
读 MP3 文件的头信息(ID3V1)(图三)            byte[] buf = new byte[TAG_SIZE];
读 MP3 文件的头信息(ID3V1)(图三)            raf.read(buf, 0, TAG_SIZE);
读 MP3 文件的头信息(ID3V1)(图三)            String tag = new String(buf, 0, TAG_SIZE, "Cp437");
读 MP3 文件的头信息(ID3V1)(图三)            int start = TAG_START.length();
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("文件名:  " + mp3.getName());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("标题  : " + tag.substring(start, start += TITLE_SIZE).trim());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("艺术家: " + tag.substring(start, start += ARTIST_SIZE).trim());
读 MP3 文件的头信息(ID3V1)(图三)            raf.close();
读 MP3 文件的头信息(ID3V1)(图三)            
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("====================================");
读 MP3 文件的头信息(ID3V1)(图三)
读 MP3 文件的头信息(ID3V1)(图三)            File mp32 = new File("F:/音乐/MP3/英文组合/blue - you make me wanna.mp3");
读 MP3 文件的头信息(ID3V1)(图三)            raf = new RandomAccessFile( mp32, "r" );
读 MP3 文件的头信息(ID3V1)(图三)            raf.seek(raf.length() - 128);
读 MP3 文件的头信息(ID3V1)(图三)            raf.read(buf, 0, 128);
读 MP3 文件的头信息(ID3V1)(图三)            tag = new String(buf, 0, 128, "Cp437");
读 MP3 文件的头信息(ID3V1)(图三)            start = TAG_START.length();
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("文件名:  " + mp32.getName());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("标题  : " + tag.substring(start, start += 30).trim());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("艺术家: " + tag.substring(start, start += 30).trim());
读 MP3 文件的头信息(ID3V1)(图三)            raf.close();
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)        } catch (Exception e) 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图八)        }
读 MP3 文件的头信息(ID3V1)(图八)    }
读 MP3 文件的头信息(ID3V1)(图四)}

读 MP3 文件的头信息(ID3V1)(图一)读 MP3 文件的头信息(ID3V1)(图二)/**//**
读 MP3 文件的头信息(ID3V1)(图三) * Created on 2005-8-6 5:10:29
读 MP3 文件的头信息(ID3V1)(图三) * @author 糊涂鬼
读 MP3 文件的头信息(ID3V1)(图四) */
读 MP3 文件的头信息(ID3V1)(图一)读 MP3 文件的头信息(ID3V1)(图二)public class ReadMp3ID3v1Info 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TAG_SIZE = 128;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TITLE_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int ARTIST_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int ALBUM_SIZE = 30;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int YEAR_SIZE = 4;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int COMMENT_SIZE = 29;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int TRACK_LOCATION = 126;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int GENRE_LOCATION = 127;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int MAX_GENRE = 255;
读 MP3 文件的头信息(ID3V1)(图三)    private static final int MAX_TRACK = 255;
读 MP3 文件的头信息(ID3V1)(图三)    private static final String ENC_TYPE = "Cp437";
读 MP3 文件的头信息(ID3V1)(图三)    private static final String TAG_START = "TAG";
读 MP3 文件的头信息(ID3V1)(图三)    
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)    public static void main(String[] args)读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)        try 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图三)            File mp3 = new File("F:/音乐/MP3/英文女歌手/Madonna - Music.mp3");
读 MP3 文件的头信息(ID3V1)(图三)            RandomAccessFile raf = new RandomAccessFile( mp3, "r" );
读 MP3 文件的头信息(ID3V1)(图三)            raf.seek(raf.length() - TAG_SIZE);
读 MP3 文件的头信息(ID3V1)(图三)            byte[] buf = new byte[TAG_SIZE];
读 MP3 文件的头信息(ID3V1)(图三)            raf.read(buf, 0, TAG_SIZE);
读 MP3 文件的头信息(ID3V1)(图三)            String tag = new String(buf, 0, TAG_SIZE, "Cp437");
读 MP3 文件的头信息(ID3V1)(图三)            int start = TAG_START.length();
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("文件名:  " + mp3.getName());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("标题  : " + tag.substring(start, start += TITLE_SIZE).trim());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("艺术家: " + tag.substring(start, start += ARTIST_SIZE).trim());
读 MP3 文件的头信息(ID3V1)(图三)            raf.close();
读 MP3 文件的头信息(ID3V1)(图三)            
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("====================================");
读 MP3 文件的头信息(ID3V1)(图三)
读 MP3 文件的头信息(ID3V1)(图三)            File mp32 = new File("F:/音乐/MP3/英文组合/blue - you make me wanna.mp3");
读 MP3 文件的头信息(ID3V1)(图三)            raf = new RandomAccessFile( mp32, "r" );
读 MP3 文件的头信息(ID3V1)(图三)            raf.seek(raf.length() - 128);
读 MP3 文件的头信息(ID3V1)(图三)            raf.read(buf, 0, 128);
读 MP3 文件的头信息(ID3V1)(图三)            tag = new String(buf, 0, 128, "Cp437");
读 MP3 文件的头信息(ID3V1)(图三)            start = TAG_START.length();
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("文件名:  " + mp32.getName());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("标题  : " + tag.substring(start, start += 30).trim());
读 MP3 文件的头信息(ID3V1)(图三)            System.out.println("艺术家: " + tag.substring(start, start += 30).trim());
读 MP3 文件的头信息(ID3V1)(图三)            raf.close();
读 MP3 文件的头信息(ID3V1)(图六)读 MP3 文件的头信息(ID3V1)(图七)        } catch (Exception e) 读 MP3 文件的头信息(ID3V1)(图五){
读 MP3 文件的头信息(ID3V1)(图八)        }
读 MP3 文件的头信息(ID3V1)(图八)    }
读 MP3 文件的头信息(ID3V1)(图四)}