【发布时间】:2020-11-06 13:09:14
【问题描述】:
我尝试指定文件的直接路由,我尝试将路由作为 File 变量的值,但无济于事。该程序识别文件(因为它不输出错误消息),但它不将其识别为具有它确实具有的 ID3 信息的 MP3 文件。代码如下:
import java.io.*;
public class ID3Reader {
public static void main(String[] arguments) {
File song = new File(arguments[0]);
try (FileInputStream file = new FileInputStream(song)) {
int size = (int) song.length();
file.skip(size - 128);
byte[] last128 = new byte[128];
file.read(last128);
String id3 = new String(last128);
String tag = id3.substring(0, 3);
if (tag.equals("TAG")) {
System.out.println("Title: " + id3.substring(3, 32));
System.out.println("Artist: " + id3.substring(33, 62));
System.out.println("Album: " + id3.substring(63, 91));
System.out.println("Year: " + id3.substring(93, 97));
} else {
System.out.println(arguments[0] + " does not contain"
+ " ID3 info.");
}
file.close();
} catch (IOException ioe) {
System.out.println("Error -- " + ioe.toString());
}
}
}
//Output is "C:\Users\gabbs\OneDrive\Music\4 Non Blondes - What's Up.mp3 does not contain ID3 info."
【问题讨论】:
-
请记住,ID3v1 和 ID3v2 是完全不同的标准。您的 ID3 阅读器可能只做其中之一。
-
“不包含”...打印
tag包含的内容怎么样,这样您就知道实际存在什么?也许你已经偏离了 1 个字节。