トップページ⇒tech
1001コメント322KB

【初心者】Java質問・相談スレ4【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。
0331327NGNG
>>330さん 
ありがとうございます。やっぱりクラスパスですか・・・
java -classpath . クラス名 とコマンドを打つと
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/Session
と出ます。現在linuxで使っているのですが、windowsで同じプログラムを動かして
見るとうまく行きます。
CLASSPATHはともに
J2EE_HOME/lib/j2ee.jar , J2EE_HOME/lib/locale
が入っています。
Linuxだとほかに何か加えなければならないのでしょうか?
0332デフォルトの名無しさんNGNG
int型の引数をとるコンストラクタを持つクラスがあって、
そのクラスを動的にロードし、上記コンストラクタを使って
インスタンスを作るにはどうしたらいいですか?
「上記コンストラクタを使って」の部分でつまってます。。
0333デフォルトの名無しさんNGNG
>>332
hennakurasu hen = new hennakurasu(1);
0334デフォルトの名無しさんNGNG
>>332
java.lang.Class#getConstractor()
java.lang.reflect.Constractor#newInstance()
0335332NGNG
レスどもです。
いまやっているのを具体的にいうと、プラグインクラスのインタフェース
まわりの設計です。

>>333
ロードするクラス名は不定(forName()でロード)で、そのメソッド
(コンストラクタ含む)はわかっているという状況なので、困ってます。
書いてなくてすみません。

>>334
getConstructor()の引数にプリミティブなintを指定するにはどうしたら
いいですか?あと、newInstance()はAPIリファレンスには空の引数リスト
でnewしたのと同じとありますが、引数ありでnewしたいのですが。
0336334NGNG
>>335
ドキュメントはちゃんと嫁。
int val =...;
Class cls = ...;
Constractor cns = cls.getConstractor(new Class[]{int.class});
Hoge instance = (Hoge)cns.newInstance(new Object[]{new Integer(val)});
0337334NGNG
>>335
ついでだけど、
AccessibleObject#setAccessible(boolean)
を併用することで、publicでないメンバへのアクセスも可能になる。
(リフレクションは何もかもをぶち壊しにする可能性のある諸刃の剣
ということですな。)リフレクションを使用したフレームワークを構築
するとき、その機構を外部から隠蔽したいときに使うとよいかも。

ただし、SecurityManagerが許可していない場合など(Servletで
動かしているときなどは、コンテナ側でSecurityManagerがインス
トール済みのことがあるよね)は、↑は出来ないので注意。
0338デフォルトの名無しさんNGNG
JavaからDBの入力とか削除とかの操作って出来ますか?
0339334NGNG
>>338
できます(条件付で)。Googleで"JDBC"で検索。または本屋にいきなはれ。
0340デフォルトの名無しさんNGNG
ていうかDBって何か知ってるのか?
0341デフォルトの名無しさんNGNG
>>340
ドリーム・ボーイ
0342デフォルトの名無しさんNGNG
ドラゴンボールに決まってんだろ

0343デフォルトの名無しさんNGNG
>>340
デルタ・ブルース
ドン・ブレーザー
デビッド・ベッカム
0344デフォルトの名無しさんNGNG
>>340
D   B
だってバカですから。
0345デフォルトの名無しさんNGNG
全然関係ないけど
その昔
DBクイーンズってグループがあったよね?
0346デフォルトの名無しさんNGNG
>>345
それはいくら何でも失礼だぞ。

今度の懐かしの人100にLINDBERGが出るらしい。
あんまりだ。今年解散だがまだまだ現役だ。
0347335NGNG
>>336
できました!ありがとうございます!!
ところで、int.classは、型intのフィールドclassで、intのClassインスタンス
であるという解釈であってるんでしょうか?同様のことを表すのに、いくつか
あさった限りではInteger.TYPEとしていたのでちょと気になりました。

リフレクションはいろいろおもしろそうなことができそうですね。
深入りするとドツボにハマりそうですが。
0348334NGNG
>>347
System.out.println(int.class == Integer.TYPE);
でたしかめれ。
0349347NGNG
>>348
確認しました。サンクス!
あと、このことについてさらに検索したところ
http://www.jguru.com/faq/view.jsp?EID=20857
がみつかりました。上記URLには、一貫性と単純さのために、
.classを使えと書いてありました。
0350デフォルトの名無しさんNGNG
JButtonを拡張したクラスにActionListenerインターフェイスをつけて、ボタンを押したら新しいウィンドウが開くように書いたつもりなんですが、
開かないです。

class StartButton extends JButton implements ActionListener{

public StartButton(String s){
super(s);
}

public void actionPerformed(ActionEvent e){

Ban ban = new Ban("test");
ban.setDefaultCloseOperation(3);
ban.show();
}

どうすれば開くようになりますか?
0351デフォルトの名無しさんNGNG
>>350
super(s) の下に this.addActionListener(this)
0352デフォルトの名無しさんNGNG
>>351
無事ひらきますた。ありがとうございます。
0353デフォルトの名無しさんNGNG
この言語って独自ファイルフォーマットの実装
って出来ないんじゃないの?
まあ小ざかしい手を使えば出来るのかもしれないが
費用対効果であまり現実的じゃないよな。
あんまり業務で使う気になれんな。
0354デフォルトの名無しさんNGNG
>>353
は? バイナリファイルなら普通に扱えますが?
0355デフォルトの名無しさんNGNG
API リファレンスすら読まない人には仕事で使ってもらいたくないですね :P
0356354NGNG
ランダムアクセスもな。
0357デフォルトの名無しさんNGNG
>>354-356
いつもの "彼" なので相手にしないで下さい。
0358デフォルトの名無しさんNGNG
ふーん。符号無しbyte型がない言語でねえ。
ぼくはあんまり処理を増やしたくないのだ。
(flag&0x01)!=0x00
といった処理や、
flag=0x01
といった処理が何万とあるとき、
楽に書ければいいんだけど。
0359デフォルトの名無しさんNGNG
あのね 他の言語やってるから JAVAが窮屈なんだよ
JAVAしか知らないプログラマには JAVAは最適だよ
0360デフォルトの名無しさんNGNG
>>358
ちょっとしたビットフィールドなら byte なり int なり使ってくだ
さい。大量のビットフィールドを扱いたいなら BitSet でも使って
ください。符号なし byte が int で代用できない理由は? そもそも
何が聞きたいんですか?
0361デフォルトの名無しさんNGNG
だからJavaのint,byteは符号付だから符号拡張で変なビットが
たってしまうだろ。そこが問題なのだよ。
例えば通信で8ビットでデータを送る場合場合
十進で128以上の値は符号拡張されるだろ。


0362デフォルトの名無しさんNGNG
byteがsignedかunsignedかをきにしなきゃいけないの?
Javaって32ビット以下のプリミティブ値って実行時には
32ビットをアロケートされるんだよね?プログラム上では
intにキャストして全部計算といても問題なし。
byteなんて普通はI/O前後ぐらいでしか使わんとおもうし、
使う必要ない。

・・・と思っていたんだけど、おいらの勘違いですか?
0363デフォルトの名無しさんNGNG
で?
0364デフォルトの名無しさんNGNG
>>363 は >>361 宛て。
結局最初の byte → int と最後の int → byte で "& 0xFF" って書くのが
面倒という話で良いわけ?
0365デフォルトの名無しさんNGNG
このネタ、JDK1.4βスレでいろいろやってたのを見た。
http://pc3.2ch.net/test/read.cgi/tech/990949654/l50
350前後からかな。
途中で方向が変わってるけど。
0366デフォルトの名無しさんNGNG
>Javaって32ビット以下のプリミティブ値って実行時には
>32ビットをアロケートされる

ということを知らない人がえらい苦労を自ら買っているわけで、
自業自得です。仕様書ぐらい嫁。
0367デフォルトの名無しさんNGNG
まぁ俺も C/C++ から来たばかりの頃は (もう 5,6 年前か) unsigned char が
ないのが不満だったな。「符号なしと符号付で byte と tiny に分けてくれ」
って言いたかったが、どこに主張して良いか分からなかった。C/C++ 時代に
築き上げたバイナリ操作の小技がほとんど使えなくなってしまったんだからな。
しかしあえて Java 流儀でやり始めてみると、そんな小技は大したもんじゃ
なかったと思うようになった。

まぁあれだ、つまりは言語移行時のはしかのようなもんだ。
0368っていうかNGNG
char 型使えば?
0369デフォルトの名無しさんNGNG
>>358
BugP(以下略)
プリ(以下略)
そんなに めんどくさいなら呼(以下略)
0370デフォルトの名無しさんNGNG
>>365
懐かしーっすね
0371デフォルトの名無しさんNGNG
>>367
さっきから見てるとごねてるのはCを使いこなしすぎた人々ですな。
JavaにCの面影を探してるよう。

「1代目は本立てにもっと細かな彫刻を施してたぞ。2代目はクソ。」

お前はその彫刻が無いと本を立てられんのかと。
むしろ、彼の作った伸縮時代で漬け物石にもなるという高機能は無視なのか。
みたいな。
0372デフォルトの名無しさんNGNG
>>365
あー、そこだそこだ。俺が byte のほかに tiny 型が欲しいって言ったの (藁
0373デフォルトの名無しさんNGNG
>>371
いや、Cを使いこなした人だったら、
ゴネてないでちゃっちゃとプリプロセッサ書いちゃいます。
ゴネてるのは(以下略)
0374デフォルトの名無しさんNGNG
>>302
>>307
市ね
0375デフォルトの名無しさんNGNG
>>374
煽りはスピードが命。
0376デフォルトの名無しさんNGNG
>>374
このスレくらい全部読め
過去スレまでとはいわんから
0377デフォルトの名無しさんNGNG
初心者どころかなんの知識もないんですが…プログラミングって何にやればいいんでしょう?
ツールとかいらないんですか?
0378デフォルトの名無しさんNGNG
>>377
>何にやればいいんでしょう?
基本的にはコンピュータ
0379デフォルトの名無しさんNGNG
Javaやるつもりなら、コンパイラくらいは必要だね。
0380デフォルトの名無しさんNGNG
あとメモ帳も必要だろう。
0381デフォルトの名無しさんNGNG
あと鉛筆。
定規があるとなおよい。
0382デフォルトの名無しさんNGNG
とりあえず、入門書買ってこい。いっぱいあるから。
サンプルプログラムがいっぱい載ってるやつが良いと思う。
役に立たない本に限って、ごたくならべて、うんちくたれてる。

と、釣られてみるテスト。
0383デフォルトの名無しさんNGNG
JAVA1001Tipsか?
JAVA Program in a Nutshellか?
0384デフォルトの名無しさんNGNG
>>382
アプレットから勧めるべきだろうか?
じゃあJava2は避けさせた方がいいのだろうか?
0385デフォルトの名無しさんNGNG
>>384
間を取ってJAppletだ!
0386デフォルトの名無しさんNGNG
せっかくだから、どんな入門書がいいか吹いてください。
・DOS窓の正しい使い方が載っている
・PATH / CLASSPATH の正しい説明が載っている
・コンパイル時・実行時のトラブル対策が載っている
とか。

>383
それは入門書じゃないと思います…

>384
アプレット本だから悪いって事はないと思うんだけどな。
まぁ、HelloWorld ぐらいはやっといてもらいたい気もするが。
File だ、Stream だ、なんてのは次のレベルだと思うし。
Java2 かどうかは関係ないっしょ?
最近の本はどっちのイベントモデルで書いてあるんでしょうかね?
0387デフォルトの名無しさんNGNG
アプレットでMIDIを鳴らそうと思ってとりあえず
・・・
AudioClip ac = new AudioClip(getDocumentBase(),"test.mid");
ac.play();
・・・
とやってみたんですが、
ふつうのmidiプレイヤーで再生して出る音量と違って、Maxボリュームにしても
殆ど聞こえない!です。ボリュームを管理するにはどうすればいいか教えてください。
アプリの方には独自のクラスとボリューム調節用メソッドがあるようですが、、、

0388デフォルトの名無しさんNGNG
>>386
JAVA Program in a Nutshellは入門書だと思ったのだが・・・
0389デフォルトの名無しさんNGNG
>>387
ちょっと待て。AudioClipはインタフェースではないか。
new出来るのかと小一時間・・・


少なくとも
AudioClip ac = applet.getAudioClip(getDocumentBase(),"test.mid");
ではないのか?
正確なコードを切り張りして再挑戦。
0390訂正NGNG
あ、よく見たらgetDocumentBase()とかやってるから、Appletのサブクラスか。
ならば正確には
AudioClip ac = getAudioClip(getDocumentBase(),"test.mid");
だな。
0391デフォルトの名無しさんNGNG
>>387
判明。
× getDocumentBase()
○ getCodeBase()

理由
getDocumentBase() はアプレットの載っているHTML文書のファイル
のurlを返している。


とか書いてたが、試しにやってみたら・・・音が出た・・・


とするなら、HTML文書のurlにtest.midが無い、もしくは名前間違い。
ではないのか?例外起きないから。

import java.applet.*;
import javax.swing.*;

public class AudioApplet extends JApplet {
AudioClip ac;
public void init() {
System.out.println("getCodeBase() : "+getCodeBase());
System.out.println("getDocumentBase() : "+getDocumentBase());
ac = getAudioClip(getDocumentBase(),"test.mid");
}
public void destroy() {
ac = null;
}
public void start() {
ac.play();
}
public void stop() {
ac.stop();
}
}
0392デフォルトの名無しさんNGNG
>>386
君には、このスレがあるから大丈夫ね。
「入門xx」買って、とりあえず始めなさい
まずはそれから
0393デフォルトの名無しさんNGNG
>>392
「入門酔拳」?
0394386NGNG
>389〜391
 早速レスありがとうございます。書き込みはミスでした(getAudioClip()でした。)
音は出るんですが、Maxボリュームでやっと聞こえる程度で困ってます。
今のところ"MIDIファイルをMML形式に変換していじる"しか思いつきましぇん。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.AudioClip;

public class audio2 extends Applet{
AudioClip ac;
Button bt1;
public void init(){
add(bt1 = new Button("play"));
bt1.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
ac.play();
}
}
);
ac = getAudioClip(getDocumentBase(),"hikari.mid");
}
}
0395387NGNG
↑387の間違いですスミマセンスミマセン
0396デフォルトの名無しさんNGNG
>>394
>MIDIファイルをMML形式に変換していじる
ここまでできるならMIDIファイル直接いじれよ・・・。
0397377NGNG
厨質問に答えていただきみなさんありがとうございます。それでは入門書買ってきます。
0398独習Java勉強厨NGNG
誰か私に抽象クラスとインターフェースの存在意義について
説明してくれる勇者はいませんか?とくにインターフェース。
空っぽのメソッドだけ宣言していったい何になるのかがどうしても理解しがたいんです。
あとでそれを継承したインターフェースやらクラスやらでメソッドを記述するなら
大元で空っぽのメソッドなんて書かなくてもいいじゃないかと思ってしまいます。

そしてもうひとつ質問が。
定数として扱うものはクラスの先頭で宣言しなくてはいけないものですか?
public static void main(String args[])よりも前に記述してあったので少し気になった次第です。
0399初心者君。NGNG
すいません質問が有ります
抽象メソッドの宣言は、
public abstract void method();
で良いんですよね。
この場合戻り値がvoidなのでこのメソッドをオーバーライドするメソッドも
戻り値を無しにしなくてはいけないのですか?
public abstract method();
では何故いけないのですか?
0400デフォルトの名無しさんNGNG
あるハッシュ表の中身を一端ファイルにとっておき、またそのファイルから
ハッシュ表に読み込むにはどうしたらいいですか。
できれば、具体的に教えて欲しいのですが。
0401とか。。。NGNG
>>399
いけない。戻り値もオーバライドの一部で戻り値のみかえるのはいけない。戻り値を省略できるのはコンストラクタのみ。
0402とか。。。NGNG
>>398
インタフェースはジャバにない関数ポインタの替わりにつかえるっしょ。
後それなりの多重継承用。多重継承のあるC++からなぜ削られたかは
EffectiveC++っちゅう本を読むとそのやらしさ、危険さはわかる。
0403デフォルトの名無しさんNGNG
作成したスレッドの中で起きたエラーを、スレッドの作成元へ返すには、どうすればいいでしょうか?
0404デフォルトの名無しさんNGNG
>>403
パラメータとして呼び出し元の参照を受け取っておく。
0405デフォルトの名無しさんNGNG
>398
 メニューボックスから「二重丸」か「五芒星」か「文字列」を選んで、クリックした場所にそれぞれ二重丸や五芒星や文字列を書くアプレットを考えます。
再描画とかがあるので、できた二重丸クラスや五芒星クラスや文字列クラスを配列に格納していくとします。
でもappletのpaint()メソッドで、いちいち
public void paint(Graphics g){
for(int i = 0;i<myVector.size();i++){
if(myVector.elementAt(i) instanceof TwinCircle){
((TwinCircle)myVector.elementAt(i)).drawTwinCircle(g);
}else if(myVector.elementAt(i) instanceof Pentagon){
((Pentagon)myVector.elementAt(i)).drawPentagon(g);
}else if・・・
とかやって「自分で」クラスによって処理を分岐させるのは面倒ですね。クラスが多くなると氏にたくなります。
pubilc interface drawable{
public void draw(Graphics g);
}というインタフェースを定義してやれば、
二重丸クラス、五芒星クラス、文字列クラスがそれぞれこのインタフェースをimplementsして、
drawメソッドを上書きしておくことで、メインのアプレットのpaintメソッドは
public void paint(Graphics g){
for(int i = 0;i<myVector.size();i++){
((drawable)(myVector.elementAt(i)).draw(g);
}
}
で済みます。つまり自動的にjavaがクラスに応じてそのクラスのdrawメソッドを呼び出してくれます。
これはインタフェースでなくクラスの継承でもできますが、例えば座標と半径を持つ円クラスを親クラスとして、二重丸クラスと五芒星クラスには半径rを適用できますが、文字列クラスには半径rは意味がありません。
振る舞いの大きく異なるクラスはインタフェースで結んだ方が良いです。

0406PolymorphismNGNG
>>398,>>402
あのな・・・多態性を忘れているぞ。
インタフェースの最大の意義である多態性を説明しなけりゃどうにもならん。
関数ポインタっーか関数オブジェクトもそれ抜きには始まるまい。


・・・「多態性」でググってみてくれ。長すぎる話になるから。
その上で分からない部分を聞きに来てくれ。スマヌ。
0407デフォルトの名無しさんNGNG
>例えば座標と半径を持つ円クラスを親クラスとして、二重丸クラスと五芒星クラスには半径rを適用できますが、文字列クラスには半径>rは意味がありません。

って言うか、

文字列は円である。

はばかげていると思わないかい?
0408PolymorphismNGNG
正直、多態性をマスターできたら初学者卒業だから、あと一歩だ。
理解すれば、なるほど!と膝を打つから。
0409デフォルトの名無しさんNGNG
>>399
よく考えれば分かると思うけど、
戻り値が不定なメソッドを作ったとしても
利用のしようが無い。
0410初心者君。(俺も独習Java)NGNG
>>409
抽象メソッドをオーバーライドしてメソッドを作る場合って引数とか戻り値を変えないと
意味が無いように思えるんですが。
う〜んイマイチ理解できましぇん。
0411デフォルトの名無しさんNGNG
>>410
そうすると多態と言うオーバーライドの目的の一つが使用できなくなります。
その考え方ならオーバーライドなんて無くてもいい。全部隠匿すればいいんだから。
0412デフォルトの名無しさんNGNG
>>410
抽象メソッドを作る時点で
役割が決まってるんだから
返り値も当然決まってる筈だろ?
0413デフォルトの名無しさんNGNG
>>410
つぅか継承も否定することになりそうな。
0414398NGNG
>405
なんとなくは分かったような気がするのですが、
分からない部分がうまく言葉にならないので、明日一日考えてみます。
皆様、ありがとうございます。
多態性についても検索してみます。
0415デフォルトの名無しさんNGNG
数値や文字がたくさん入ったTXTデータからそれを読みこんで
たとえば「DATE」というのを見つけたらその次の数値を表示させるなど)
をしたいんですが教えてもらえませんでしょうか
0416HNGNG
//ピースイメージ生成
//--------------------
for (i=24;i>=0;i--) {
image[i]=Image.createImage(20,20);
image[i].getGraphics().drawImage(imgPic,
-20*(i%5),-20*(i/5),
Graphics.LEFT|Graphics.TOP);

わかりますか??(>_<)
0417デフォルトの名無しさんNGNG
>>400

// 書き込み
Hashtable table = new Hashtable();
…
ObjectOutputStream out = null;
try{
  out = new ObjectOutputStream(new FileOutputStream("hoge.ser"));
  out.writeObject(table);
} finally {
  try{if(out != null) out.close();}catch(IOException ex){/* */}
}

// 読み込み
ObjectInputStream in = null;
Hashtable table = null;
try{
  in = new ObjectInputStream(new FileInputStream("hoge.ser"));
  table = (Hashtable)in.readObject();
} finally {
  try{if(in != null) in.close();} catch(IOException ex){/* */}
}

まぁ例外処理はお好きなように。
0418デフォルトの名無しさんNGNG
>>415
とりあえず StringTokenizer を使ってみろと言っておく。
0419デフォルトの名無しさんNGNG
JavaSDK1.4.1ってApplet作れないんですか?
ClassNotFoundになっちゃうんですけど。
0420デフォルトの名無しさんNGNG
>>416
Image は抽象クラスなので BufferedImage(20,20,BufferedImage.TYPE_INT_RGB)
でも使え。
あと、Graphics.drawImage の引数4個版の第四引数はImageObserverなので変。


内容的にはimgPicの画像を使った16パズル系のゲームのピースイメージのロード。
ピースは20×20のサイズで元絵は100×100。
5×5ピースだが24個しか無いのは右下の1ピースは移動用に開けてある為。
0421デフォルトの名無しさんNGNG
>>419
アプレットタグが間違ってないか?
0422デフォルトの名無しさんNGNG
>>419
appletviewer で ClassNotFound になるか確認すれ
0423デフォルトの名無しさんNGNG
>>415
そのデータ見せてみ
0424デフォルトの名無しさんNGNG
>>419
javac -version 1.1 Hoge.java
で試してみ
0425424NGNG
javac -target 1.1 Hoge.java
だったよ。すまそ
0426デフォルトの名無しさんNGNG
Objectの配列が格納されたVectorから、Objectの配列の配列を得るのにイイ方法ってどうよ?
つまり
Vector v = new Vector();
while (hoge.hasNext()){
  Object[] oa = new Object[hoge.getSize()];
  for(int i = 0; i < oa.length; ++i){
    oa[i] = hoge.getData(i);
  }
  v.add(oa);
  hoge.next();
}
みたいな感じでVectorにObject[]流し込むんだけど、これをObject[][]で得たいのよ。

いまのところ
Object[] oa = v.toArray();
Object[][] oaa = new Object[oa.length][];
for(int i = 0; i < oa.length; ++i){
  oaa[i] = (Object[])oa[i];
}
ってやってるんだけどね。
0427デフォルトの名無しさんNGNG
>>426
Object[][] array = v.toArray( new Object[v.size()][] );
ではダメなのか?
0428415NGNG
レスありがとうございます
>>423
--sample.txt---
〜
SampleA
1 32.1 23.4
2 11.2 21.2
SampleB
1 15
2 24
3 55
・・
・・
--------
みたいなデータでこのtxtからSampleBを呼んでそこの次の行からの二行ずつの数値を
配列に取り込みたいんです。
どうかよろしくお願いします。
0429デフォルトの名無しさんNGNG
>428
LineNumberReader使って、1行づつ読んでみればいかがでしょうか。

LineNumberReader reader
= new LineNumberReader( new FileReader("sample.txt"));

String str = reader.readLine();

みたいな感じでreader.readLine()で1行づつとってこれるから。
とりあえず、SampleBと一致するまでは簡単でしょ。
次の行からは適当にパースしてみ。
0430デフォルトの名無しさんNGNG
BufferedReader にしとけ
■ このスレッドは過去ログ倉庫に格納されています