【初心者】Java質問・相談スレッド54【大歓迎】
まじでおねがいするなら、ふさわしいスレに行けばいいのに。
人工無能の定義って、何だろう。
「何か(仮)」は、人工無能に入るんだろうか。
面白そうな定義だな。でも、作るとなるとひたすら面倒なだけって気ガス。
954 :
デフォルトの名無しさん:04/10/20 21:39:50
えーと・・テーブル上で書き込んだ計算式を
計算するようなクラスはどうすれば・・
TreeNodeで分岐させて作ればいいのかな?
マジ素人的な質問ですみません
ファイル出力用のソースを書いておりますが、
出力時、8KBに達するとエラーで落ちてしまいます。
出力classはBufferedWriterを使用してます。
「おい、こんなん、こうやればチョチョイのチョイだよ!」と
仰る神々の皆様、この哀れな名無しに救いの手を!!!
アイフルのまでとは言わないが、ふつーに意味不明な会話が出来ればいい。
質問の内容をデータベースに溜めて、上位10件くらいの返答内容を準備する。
その繰り返し。
最終的に人工無能同士で会話をさせたい。
>955
ソースうpきぼん。
>>956 特定のキーワードに反応する答えを用意しておけばいいだけだろ
>>954 自分で計算するクラスを作るか、計算してくれるクラスを探すか。
ちなみに、javax.swing.tree.TreeNode は計算してくれない。
そもそもクラスじゃないし、用途が全然違う。
960 :
デフォルトの名無しさん:04/10/20 21:56:22
学校でJavaプログラミングを勉強しているのですが、
マスターできれば何ができるようになれますか?
新一年生です・・・
ベーション
>>955 エラーの全文とソースを載せろ。話はそれからだ。
学校なんて点さえ取れれば、なんでもよい
趣味で何かしたい!と思うなら、先生に勉強の仕方を聞いて
自分でやるしかない
専門学校でないなら、ほとんど意味はない
>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");
こんな感じです。よろしくお願いします。
> マスターできれば何ができるようになれますか?
こういう質問する時点で、向いてないか先生の教え方が悪いか、だな。
「教養身につけると何ができるようになれますか?」
みたいなね。
>>966 英語なのでわからないと思いますので
ソースを書きました。
>967
いや、その英語のやつが重要なんだが。
>>967 お前、おもしろいよ。
ソースも該当部分のせてないしな。ReadLineで帰り値の
チェックしてなくて、ぬるぽ出てると適当に書いてみる。
特殊な環境でOutOfMemoryErrorなのかもしれぬ。
8KBに達すると落ちるってなんかかわいいな。
967の955は偽者ですよ。
このスレの内に解決するんかな
ともあれ>971、本物なら早くエラーも晒しんさい。
973 :
デフォルトの名無しさん:04/10/20 22:21:20
>>963 そうなのか・・・
じゃあ、テキトーにやるかな。
実行時、例外エラーが起きてるらしく、以下のソースに飛びます。
catch(ArrayIndexOutOfBoundsException ex){
System.out.println("Err:" );
すみません、ホント初心者なんでデバッグ情報拾えないんです。
拾い方を囁いてくださる神々の皆様!哀れな子羊に福音を!!
福音の使い方が間違ってる。
配列が足りないんじゃん。
そこに、ex.printStackTrace()って入れてみれば発生箇所もわかるはず。
まともに例外処理できないならcatchするなと。つーかそれ
入出力関係ないだろと。
>>974 > System.out.println("Err:" );
ex.printStackTrace(); にしろ。
>配列が足りないんじゃん。
>そこに、ex.printStackTrace()って入れてみれば発生箇所もわかるはず。
とりあえず、やってみます。
皆さんありがとぉー!!
やってみました。
なんかでました。
とりあえず、貼ります。
java.lang.ArrayIndexOutOfBoundsException: 6
at KAWASE001.CutRateFile(KAWASE001.java:36)
at KAWASE001.main(KAWASE001.java:102)
ソースコードの36行目がおかしいのかなぁー?
>>960 マスターすればJavaプログラムが組めるようになる。
>981
エラーにはそう書いてあるね。
ただ、A[i]の宣言・生成の辺りを見直した方が良さそうだ。
>983
ありがとうございます。
入出力含めてこの周辺見直してみます!
また報告します!!
途中経過です。
入出力とも特に変な文字列はありませんでした。
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名結合
引数でディレクトリを指定し、そのディレクトリ内にファイルが存在するか
否かチェックし、存在していればそのファイル名を取得し、ディレクトリ名とファイル名を結合しています。
出力結果を見るとファイル名はすべて取得できているんですが、
ファイル出力はできないんですよね。謎です。また調べます。ノシ
for (int i=0; i<A.length; i++) {
でヨサゲ。
>986
試してみました。
なんで
for (int i=0;i<=100;i++){ が
for (int i=0; i<A.length; i++) { でもいいのか
理解できてませんが、動作は一緒でした。
エラーも一緒でした。
ぴったり8,192バイト出力して止まるんですよねぇー。
なぞだ。
>>955 ・・・・・
System.out.println(A.length);
for (int i=0; i<A.length; i++) {
System.out.println(i);
・・・・・
と直して出力結果見せて。
フラッシュしてるのか?
>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
の内容の途中で止まってます。
>>955 System.out.println(A.length);
の結果は?
>出力ファイルは4の次のEU.datの内容の途中で止まってます。
バッファリングしてるんだから、おかしくはないよ。
>System.out.println(A.length);
の結果は?
これです。
0
1
2
3
4
5
6
・・・あれ?なんで7個でてるんだ?入力ファイル6個なのに。
for文をもう一度確認しる。
994 :
デフォルトの名無しさん:04/10/20 23:27:55
9月にJavaかCかのプログラミングを選択するので
Javaを選んだんですが結果的には良かったんですかね?
>>992 それは
System.out.println(i);
の部分の出力です。
A.lengthの値はAの配列の数なので固定されてるはず
>>992 おかしい。System.out.println(A.length); が、出ていない。
forのループの終了判定は本当に、 i<A.length に変えたか?
コンパイルはしなおしたか?
>>994 プログラマとしては C が読めないのは致命的。
Java は必ずしも致命的ではない。
C が出来ないなら、悪い選択をした可能性が高い。
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。