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

このエントリーをはてなブックマークに追加
952人工無能エミー:04/10/20 21:11:00
まじでおねがいするなら、ふさわしいスレに行けばいいのに。
953デフォルトの名無しさん:04/10/20 21:13:20
人工無能の定義って、何だろう。
「何か(仮)」は、人工無能に入るんだろうか。

面白そうな定義だな。でも、作るとなるとひたすら面倒なだけって気ガス。
954デフォルトの名無しさん:04/10/20 21:39:50
えーと・・テーブル上で書き込んだ計算式を
計算するようなクラスはどうすれば・・
TreeNodeで分岐させて作ればいいのかな?
955デフォルトの名無しさん:04/10/20 21:49:13
マジ素人的な質問ですみません
ファイル出力用のソースを書いておりますが、
出力時、8KBに達するとエラーで落ちてしまいます。
出力classはBufferedWriterを使用してます。

「おい、こんなん、こうやればチョチョイのチョイだよ!」と
仰る神々の皆様、この哀れな名無しに救いの手を!!!
956943:04/10/20 21:49:32
アイフルのまでとは言わないが、ふつーに意味不明な会話が出来ればいい。
質問の内容をデータベースに溜めて、上位10件くらいの返答内容を準備する。
その繰り返し。
最終的に人工無能同士で会話をさせたい。
957デフォルトの名無しさん:04/10/20 21:49:51
>955
ソースうpきぼん。
958デフォルトの名無しさん:04/10/20 21:51:11
>>956
特定のキーワードに反応する答えを用意しておけばいいだけだろ
959デフォルトの名無しさん:04/10/20 21:55:10
>>954
自分で計算するクラスを作るか、計算してくれるクラスを探すか。
ちなみに、javax.swing.tree.TreeNode は計算してくれない。
そもそもクラスじゃないし、用途が全然違う。
960デフォルトの名無しさん:04/10/20 21:56:22
学校でJavaプログラミングを勉強しているのですが、
マスターできれば何ができるようになれますか?
新一年生です・・・
961デフォルトの名無しさん:04/10/20 21:57:46
ベーション
962デフォルトの名無しさん:04/10/20 21:58:14
>>955
エラーの全文とソースを載せろ。話はそれからだ。
963デフォルトの名無しさん:04/10/20 22:00:38
学校なんて点さえ取れれば、なんでもよい

趣味で何かしたい!と思うなら、先生に勉強の仕方を聞いて
自分でやるしかない

専門学校でないなら、ほとんど意味はない
964955:04/10/20 22:02:27
>957
恥ずかしながら公開します。
部分的ですが。

// ファイルオープン(出力ファイル名=ofilename)
FileWriter fw = new FileWriter(ofilename);
//バッファ書き出しコンストラクタ定義
BufferedWriter bw = new BufferedWriter(fw);
//バッファ書き出しコンストラクタ定義(入力ファイル名=A[i])
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(A[i]), "SJIS"));
//一行読み込み
lineStr = fileLine;
//出力
bw.write(lineStr +"\n");

こんな感じです。よろしくお願いします。
965デフォルトの名無しさん:04/10/20 22:03:23
> マスターできれば何ができるようになれますか?

こういう質問する時点で、向いてないか先生の教え方が悪いか、だな。
「教養身につけると何ができるようになれますか?」
みたいなね。
966デフォルトの名無しさん:04/10/20 22:09:28
>>964 エラー貼れって。
967955:04/10/20 22:11:52
>>966
英語なのでわからないと思いますので
ソースを書きました。
968デフォルトの名無しさん:04/10/20 22:14:02
>967
いや、その英語のやつが重要なんだが。
969デフォルトの名無しさん:04/10/20 22:14:15
>>967 お前、おもしろいよ。
ソースも該当部分のせてないしな。ReadLineで帰り値の
チェックしてなくて、ぬるぽ出てると適当に書いてみる。
970デフォルトの名無しさん:04/10/20 22:17:30
特殊な環境でOutOfMemoryErrorなのかもしれぬ。
8KBに達すると落ちるってなんかかわいいな。
971955:04/10/20 22:19:18
967の955は偽者ですよ。
972デフォルトの名無しさん:04/10/20 22:21:02
このスレの内に解決するんかな
ともあれ>971、本物なら早くエラーも晒しんさい。
973デフォルトの名無しさん:04/10/20 22:21:20
>>963
そうなのか・・・
じゃあ、テキトーにやるかな。
974955:04/10/20 22:23:20
実行時、例外エラーが起きてるらしく、以下のソースに飛びます。
catch(ArrayIndexOutOfBoundsException ex){
System.out.println("Err:" );

すみません、ホント初心者なんでデバッグ情報拾えないんです。
拾い方を囁いてくださる神々の皆様!哀れな子羊に福音を!!
975デフォルトの名無しさん:04/10/20 22:25:10
福音の使い方が間違ってる。
976デフォルトの名無しさん:04/10/20 22:26:34
配列が足りないんじゃん。
そこに、ex.printStackTrace()って入れてみれば発生箇所もわかるはず。
977デフォルトの名無しさん:04/10/20 22:26:39
まともに例外処理できないならcatchするなと。つーかそれ
入出力関係ないだろと。
978デフォルトの名無しさん:04/10/20 22:28:10
>>974
> System.out.println("Err:" );
ex.printStackTrace(); にしろ。
979955:04/10/20 22:28:58
>配列が足りないんじゃん。
>そこに、ex.printStackTrace()って入れてみれば発生箇所もわかるはず。

とりあえず、やってみます。
皆さんありがとぉー!!
980955:04/10/20 22:33:43
やってみました。
なんかでました。
とりあえず、貼ります。

java.lang.ArrayIndexOutOfBoundsException: 6
at KAWASE001.CutRateFile(KAWASE001.java:36)
at KAWASE001.main(KAWASE001.java:102)
981955:04/10/20 22:35:24
ソースコードの36行目がおかしいのかなぁー?
982デフォルトの名無しさん:04/10/20 22:36:18
>>960
マスターすればJavaプログラムが組めるようになる。
983デフォルトの名無しさん:04/10/20 22:37:19
>981
エラーにはそう書いてあるね。
ただ、A[i]の宣言・生成の辺りを見直した方が良さそうだ。
984955:04/10/20 22:42:18
>983
ありがとうございます。
入出力含めてこの周辺見直してみます!
また報告します!!
985955:04/10/20 22:53:35
途中経過です。
入出力とも特に変な文字列はありませんでした。
A[i]の辺りを貼ります。
//ファイル存在チェック
File f =new File(idir);  ←引数でDirを指定。
String A[] = f.list();
int Cnt=0;
try{//@ルーチン
for (int i=0;i<=100;i++){ //Aファイル検索
if (A[i]==null) break;
Cnt++;//File Found!!
A[i] = idir + A[i]; //DIR,File名結合

引数でディレクトリを指定し、そのディレクトリ内にファイルが存在するか
否かチェックし、存在していればそのファイル名を取得し、ディレクトリ名とファイル名を結合しています。
出力結果を見るとファイル名はすべて取得できているんですが、
ファイル出力はできないんですよね。謎です。また調べます。ノシ
986デフォルトの名無しさん:04/10/20 22:57:33
for (int i=0; i<A.length; i++) {
でヨサゲ。
987955:04/10/20 23:02:46
>986
試してみました。
なんで
for (int i=0;i<=100;i++){ が
for (int i=0; i<A.length; i++) { でもいいのか
理解できてませんが、動作は一緒でした。
エラーも一緒でした。
ぴったり8,192バイト出力して止まるんですよねぇー。
なぞだ。
988デフォルトの名無しさん:04/10/20 23:06:25
>>955
・・・・・
System.out.println(A.length);
for (int i=0; i<A.length; i++) {
System.out.println(i);
・・・・・
と直して出力結果見せて。
989デフォルトの名無しさん:04/10/20 23:13:24
フラッシュしてるのか?
990955:04/10/20 23:14:09
>988
ありがとう。

結果を貼ります。
N:\>java KAWASE001 N:\input\ output.txt
0
N:\input\aaa.txt
1
N:\input\AfandMadia.dat
2
N:\input\Americas.dat
3
N:\input\Asia.dat
4
N:\input\EU.dat
5
N:\input\US.dat
6
java.lang.ArrayIndexOutOfBoundsException: 6
at KAWASE001.CutRateFile(KAWASE001.java:38)
at KAWASE001.main(KAWASE001.java:103)

途中のフルパスファイル名は、無視してください。
確かにこの順序で読み込んでいるんですが、出力ファイルは4の次のEU.dat
の内容の途中で止まってます。
991デフォルトの名無しさん:04/10/20 23:16:36
>>955
System.out.println(A.length);
の結果は?

>出力ファイルは4の次のEU.datの内容の途中で止まってます。
バッファリングしてるんだから、おかしくはないよ。
992955:04/10/20 23:20:18
>System.out.println(A.length);
の結果は?
これです。
0
1
2
3
4
5
6

・・・あれ?なんで7個でてるんだ?入力ファイル6個なのに。
993デフォルトの名無しさん:04/10/20 23:22:32
for文をもう一度確認しる。
994デフォルトの名無しさん:04/10/20 23:27:55
9月にJavaかCかのプログラミングを選択するので
Javaを選んだんですが結果的には良かったんですかね?
995デフォルトの名無しさん:04/10/20 23:28:30
>>992
それは
System.out.println(i);
の部分の出力です。

A.lengthの値はAの配列の数なので固定されてるはず
996デフォルトの名無しさん:04/10/20 23:29:13
>>992
おかしい。System.out.println(A.length); が、出ていない。
forのループの終了判定は本当に、 i<A.length に変えたか?
コンパイルはしなおしたか?
997デフォルトの名無しさん:04/10/20 23:29:48
>>994
プログラマとしては C が読めないのは致命的。
Java は必ずしも致命的ではない。

C が出来ないなら、悪い選択をした可能性が高い。
998デフォルトの名無しさん:04/10/20 23:29:56
>>994
Cも勉強しといた方がいいよ。
999デフォルトの名無しさん:04/10/20 23:30:36
>>992
i<=A.lengthになってるんじゃないか?

>>994
よかった。

次スレは?
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。