首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sams自学Java 24小时第六版罗杰斯·卡登黑德MP3第20章MP3文件错误

Sams自学Java 24小时第六版罗杰斯·卡登黑德MP3第20章MP3文件错误
EN

Stack Overflow用户
提问于 2013-01-22 08:44:05
回答 4查看 319关注 0票数 2

我是一名java新手,正在尝试阅读这篇文章标题中列出的那本书。这也是我在堆栈溢出上发布的第一个问题。似乎没有这本书的论坛,所以我决定在这里问。

我正在学习第20章:用Java24小时读和写文件,并且已经进入了ID3Reader.java项目。我正在使用Netbeans 7创建此项目。代码应该分析一个MP3文件(我已经使用绝对路径作为参数),并跳过除最后128个字节之外的所有内容。然后,检查剩余的字节以查看它们是否包含任何ID3数据。如果是,则前三个字节是数字84、65、71。然后按降序显示标题、艺术家、专辑和年份。

代码语言:javascript
复制
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文件的确切位置,甚至从本书的网站上获得了代码。

代码语言:javascript
复制
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea). 

但是我得到了这个错误。

代码语言:javascript
复制
Error — java.io.FileNotFoundException: C:\Documents (The system cannot find the file specified)

我费了很大力气才找到一些能帮助我解决这个问题的东西,但我似乎就是找不到任何能解决这个问题的东西。如果您能给我提供任何信息,我将不胜感激。如果在你回答之前还有更多需要知道的信息,只需说“我会得到它”。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-22 08:46:32

代码语言:javascript
复制
C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea)

你有那份文件吗?也许你在最后忘记了.mp3,或者你从一开始就没有这个文件。如果没有,请将路径更改为您的文件所在位置,如下所示:

代码语言:javascript
复制
C:\Users\Somebody\Desktop\song.mp3

此外,如果路径中需要空格,则必须使用引号:

代码语言:javascript
复制
"C:\Path with spaces\More spaces\song_thing.mp3"
票数 2
EN

Stack Overflow用户

发布于 2013-01-22 08:46:28

在“设置参数”时,您可能需要将路径放在引号之间;如下所示:

代码语言:javascript
复制
java ID3Reader "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea)."
票数 2
EN

Stack Overflow用户

发布于 2013-01-22 08:46:44

在运行命令中使用引号将文件参数括起来,否则第一个字符串令牌将被用作arguments[0],就像命令外壳传递的那样:

代码语言:javascript
复制
java ID3Reader  "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea).mp3"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14449773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档