歯ブラシ選びの大事なポイントとは?

ID3タグ取得のプログラムなのですがちゃんと動いたのは良いんですが解らないプログラム部分がありました。
ググったり過去の質問探したりしたのですが解答が見つかりません。

お手数ではありますがご教授願います。

以下はプログラムです。


/*ID3タグ取得プログラム*/

import java.io.*;
import java.nio.channels.*;
import java.util.Arrays;

class TagInfo{
final private String name;
final private int pos;
final private int len;
public TagInfo(String name,int pos,int len){
this.name=name; this.pos=pos; this.len=len;
}
public String getName() {
return name;
}
public int getPos() {
return pos;
}
public int getLen() {
return len;
}
}

public class M_data {
private static byte[] copyOfRange(byte b[],int pos, int len){
byte[] a=new byte[len];
System.arraycopy(b,pos,a,0,len);
return a;
// return java.util.Arrays.copyOfRange(b,pos,pos+len);
}
static void music() throws IOException{

File file = new File("C:/music/music4.mp3");
FileInputStream fis=new FileInputStream(file);
String charsetName="Shift_JIS";
//if(1<args.length) charsetName=args[1];
FileChannel fc=fis.getChannel();
fc.position(fc.size()-128);
byte[] b=new byte[128];
if(fis.read(b)==128 && b[0]=='T' && b[1]=='A' && b[2]=='G'){
TagInfo[] infos={new TagInfo("Song title:",3,30),new TagInfo("Artist:",33,30),
new TagInfo("Album:",63,30),new TagInfo("Year:",93,4),
new TagInfo("Comment:",97,30),new TagInfo("Genre:",127,1)
};
int i=0;

/*以下のfor文です*/
for(TagInfo info: infos){
System.out.print(i + info.getName());
System.out.println(new String(copyOfRange(b,info.getPos(),info.getLen()),charsetName));
i++;
}

}
}
public static void main(String[] args) throws IOException{
music();
}
}

このQ&Aに関連する最新のQ&A

A 回答 (1件)

> for(TagInfo info: infos){



ここの for(XXXX yyyy: yyyys) という構文がわからないのですか?

「拡張for文」でググってください。

Javaの長い歴史の中でも比較的新しい文法です。古いJavaのテキストには載っていないことがあります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
拡張for文でググったら出ました。

そういえばeclipseの警告で「ソースレベルが5.0の場合にのみ使用可能」って出てましたね。

お礼日時:2008/07/23 13:25

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング