Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

またまたファイル操作

本当にたびたびすいません。

ファイルの中身をループの中で読み込みたいんですが、
どうもうまくいかないんですが、

File file = new File("argv");

String[] arg0 = file.list;

for(int i = 0; i < 4; i++){
   FileReader filereader = new FileReader(arg0);

   System.out.println(filereader);
}

とソースに書いたんですが、デバックをすると「System.out.println(file);」にたどり着かずに
違うところに飛んでしまいます。

どうすればいいのかがまったくわかりません。

もしわかる方がいたら回答の方よろしくお願いします。

9

回答

2328

閲覧

9件の回答

評価

0

まず、続きの話題は新しいスレッドを起こさないようにしましょう。

>デバックをすると
それ以前にコンパイルできそうにありません。

>どうすればいいのかがまったくわかりません。
自分の問題なのだから、丸投げはやめましょう。
回答者にとっては、あなたがこれを完成させることができるかどうかは、基本的には関係のないことです。
あなたがやる気を見せて、「ここが分からない」というところが明確にならないと、回答者もやる気が起こらないでしょう。

「デバックをすると」とありますが、これはどのような方法で行いましたか?
デバッグの基本は、そこにたどり着いているかということと、変数に何が入っているのかを確認することです。

評価

0

mioさん回答ありがとうございます。

すいません。
どう書いていいかもわからなかったので、
丸投げなんてしてないし、ここにいる人たちが
プログラムするんではないのはわかっています。

自分が聞きたかったのはループ内で「FileReader」を
使ってファイルの中身を読み込んでくれるかが聞きたかったんです。

本当にすいません。
もう少し勉強します。

評価

0

私とmioさんの発言を全く無視していますね。
そういう態度は私としては気持ちのいいものではないのですが。

>File file = new File("argv");

これの意味は分りますか?

>String[] arg0 = file.list;

ここでコンパイルエラーになるはずですが。それに、listメソッドではなくlistFilesメソッドのほうがいいとアドバイスしたのですが。

>FileReader filereader = new FileReader(arg0);

mioさんが、エンコード方式が指定できないからInputStreamReaderとFileInputStreamを組み合わせたほうがいいとアドバイスしたのですが。
それに、ここでもエラーになるはずですし、やりたいことの意味もわかりません。

>System.out.println(filereader);

おそらく意図としては、これでファイルの内容を表示したいんだとは思いますが、ファイルの内容を取得するプログラムは前に書いていましたよね。なぜそれを使わないのですか?

>「System.out.println(file);」にたどり着かず

プログラムに該当部分がありませんが。

評価

0

>ループ内で「FileReader」を
>使ってファイルの中身を読み込んでくれるか
正しく書けば動きますが、FileReaderは前述のとおり、適当さんも補足していただいています。
Readerはストリームを読むために用意するクラスであり、実際の読み込みはきちんと作りこむ必要があります。

>System.out.println(filereader);

エラーにならない=正しい(自分の意図した動作を行う)というわけではないことも、前回書きました。

もう少し落ち着いて、少しずつ調べて、じっくり考えてみることをお勧めします。

評価

0

回答ありがとうございます。

本当にすいません。
回答までしてもらっているのに。
どうしたら、相手に伝わりやすくなるか、ゆっくり考えてから今度からは質問します。
そのために勉強します。

教えていただいてありがとうございます。

少し難しいですが、なんとか調べたりしてがんばってみます。

適当さん
>>File file = new File("argv");

>これの意味は分りますか?

意味はわかります。


>>String[] arg0 = file.list;

>ここでコンパイルエラーになるはずですが。それに、listメソッドではなくlistFilesメソッドのほうがいいとアドバイスしたのですが。

すいません。忘れてました。
以後気をつけます。

>>FileReader filereader = new FileReader(arg0);

>mioさんが、エンコード方式が指定できないからInputStreamReaderとFileInputStreamを組み合わせたほうがいいとアドバイスしたのですが。
それに、ここでもエラーになるはずですし、やりたいことの意味もわかりません。

InputStreamReaderとFileInputStreamを組み合わせ方がわからなかったから使っていませんでした。
すいません。
さっき調べたら理解できたので使います。
すいませんでした。

>>System.out.println(filereader);

>おそらく意図としては、これでファイルの内容を表示したいんだとは思いますが、ファイルの内容を取得するプログラムは前に書いていましたよね。なぜそれを使わないのですか?

すいません。もう一度やり直します。

本当にすいませんでした。
もう一度1から勉強し直して、
今度は相手にわかりやすくします。

ご指摘ありがとうございました。
そして数々のご無礼すいませんでした。


評価

0

File file = new File("argv");
という記述は、おそらく質問者さんのやりたい動作ではないような気がします。
この記述での動きは、

argv というファイル名を指定してFileオブジェクトを作成する

です。
"argv"という綴りから、何となく引数で渡されたファイルを開きたいのではないかと推測します。
もしそうなら、変数と文字列の使い方を勉強されることをお勧めします。

開くファイルの名前が"argv"で合っていると言うことでしたら、余計な口出しすみません。

評価

0

質問する前にもう少し頑張っていれば、自分で調べて理解できていたわけですよね。
慣れないうちは見極めが難しいとは思いますが、「もう少し自力で頑張ってみよう」という思いが、プログラミングでは重要になってきます。
(仕事だと、締め切りがあるのでどうしても人に頼らざるを得ないときもありますが)

少しずつでも、先へ進んでいます。頑張ってください。

評価

0

三等兵さん回答ありがとうございます。

そうみたいです。
今何とか解決の方向に進んでいます。


mioさん回答ありがとうございます。

そうですね。
本当にすいません。
だんだん慣れてはきているんですが、
まだわからないことだらけで、
パニックになってました。
本当にすいません。
今度からは落ち着いて1つ1つ整理してから質問します。

本当にありがとうございます。
頑張って、早くJavaを覚えたいと思います。

評価

0

>適当さん
>>>File file = new File("argv");

>>これの意味は分りますか?

>意味はわかります。

「わかります」じゃ本当にわかっているのかどうかがこちらにはわかりません。
自分の理解した内容を箇条書きにでもして、
説明してください。

三等兵さんのご指摘は、
適当さんの2007-08-17 16:57の「これの意味は分りますか?」の意図そのものです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。