2

私は Java の初心者で、この記事のタイトルに記載されている本を読んでいます。これは、スタック オーバーフローに投稿する最初の質問でもあります。この本のフォーラムはないようですので、ここで質問することにしました。

私は Chapter 20: Read and Writing Files in Java 24 Hours に参加しており、ID3Reader.java プロジェクトにたどり着きました。このプロジェクトを作成するために Netbeans 7 を使用しています。このコードは、MP3 ファイル (私は絶対パスを使用して議論しました) を分析し、最後の 128 バイト以外をすべてスキップすることになっています。次に、残りのバイトを調べて、ID3 データが含まれているかどうかを確認します。その場合、最初の 3 バイトは数字 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 ファイルの正確な場所に設定し、この本の Web サイトからコードを入手しました。

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)

この問題に役立つ何かを見つけようとして髪を引っ張りましたが、この問題に変換できるものを見つけることができないようです. 情報をいただければ幸いです。答える前に知っておく必要がある情報がさらにある場合は、「わかります」と言ってください。

4

4 に答える 4

2

「引数を設定する」ときは、おそらくパスを引用符で囲む必要があります。そのようです:

java ID3Reader "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea)."
于 2013-01-22T00:46:27.587 に答える
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"
于 2013-01-22T00:46:31.567 に答える
2

ファイル引数を実行コマンドで引用符で囲みます。そうしないとarguments[0]、コマンド シェルによって渡される最初の文字列トークンが として使用されます。

java ID3Reader  "C:\Documents and Settings\Administrator\My Documents\NetBeansProjects\Java24\Where The Moon Came From - Moonbrows (Twin Of Pangaea).mp3"
于 2013-01-22T00:46:44.423 に答える
1

エラー メッセージが示すように、ファイル名は として解析されましC:\Documentsた。これは、後のスペースDocumentsが最初の引数の終わりと 2 番目の引数の始まりを示しているためです。引数を単一の引数として扱うには、引数を引用符で囲む必要があります。

java ID3Reader "C:\Documents and Settings\..."
于 2013-01-22T00:46:51.693 に答える