我是一名java新手试图浏览本文标题中列出的书。这也是我发布堆栈溢出的第一个问题。这本书似乎没有论坛所以我决定在这里问。
我在第20章:在Java 24小时内阅读和编写文件,并且已经进入了ID3Reader.java项目。我正在使用Netbeans 7来创建这个项目。该代码应该分析一个MP3文件(我使用绝对路径创建了我的参数)并跳过除最后128个字节之外的所有内容。然后,检查剩余的字节以查看它们是否包含任何ID3数据。如果是这样,前三个字节是数字84,65,71。 然后它按降序显示标题,艺术家,专辑和年份。
import java.io.*;
public class ID3Reader {
public static void main(String[] arguments) {
try {
File song = new File(arguments[0]);
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 (Exception e) {
System.out.println("Error — " + e.toString());
}
}
我再次将参数设置为MP3文件的确切位置,甚至从本书的网站上获取代码。
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea).
但我得到了这个错误。
Error — java.io.FileNotFoundException: C:\Documents (The system cannot find the file specified)
我已经把头发拉出来试图找到一些可以帮助我解决这个问题的东西,但我似乎无法找到任何可以转化为这个问题的东西。我非常感谢你能给我的任何信息。如果还有任何需要知道的信息,你可以回答之前只说出“我会得到它”这个词。
答案 0 :(得分:2)
在“设置参数”时,您可能需要在引号之间放置路径;像这样:
java ID3Reader "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea)."
答案 1 :(得分:2)
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea)
你有那个文件吗?也许你最后忘记了.mp3
,或者你可能从来没有把文件放在首位。如果没有,请更改文件所在的路径:
C:\Users\Somebody\Desktop\song.mp3
此外,如果您想在路径中使用空格,则必须使用引号:
"C:\Path with spaces\More spaces\song_thing.mp3"
答案 2 :(得分:2)
在run命令中将文件参数括在引号中,否则第一个字符串标记将用作arguments[0]
,如命令shell传入的那样:
java ID3Reader "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea).mp3"
答案 3 :(得分:1)
如错误消息所示,文件名被解析为C:\Documents
。这是因为Documents
之后的空格表示第一个参数的结束,第二个参数的开始。您需要将参数包装在引号中,以便将其视为单个参数。
java ID3Reader "C:\Documents and Settings\..."