• 締切済み

JavaのFile書き込み

Vectorに入っていた文字列をファイルに書き込みたいのですが 書き込みができません。。 for文中で使っているため書き込む場所を間違えたのかなと思い 新たなVectorにaddしてみたところ、正しく入っていました。 bw.write("KEYWORD" +keyword+ \n"); このような感じで書いたのですが、この文に誤りがあるのでしょうか?

みんなの回答

回答No.2

ファイルを単純に読み込んで書き込むPGを作ってみましたが、特に問題なく読み込んで書き込めていました。 ファイルを読み込んでVectorに追加している部分がうまく動作していないのだと思います。 import java.io.*; class FileReadWrite { public static void main(String args[]) throws Exception{ BufferedReader br = null; BufferedWriter bw = null; try{ br = new BufferedReader(new FileReader(args[0])); bw = new BufferedWriter(new FileWriter(args[1])); String line; while ( (line = br.readLine()) != null ){ bw.write(line + "\r\n"); } } finally { br.close(); bw.close(); } } }

sora-pon
質問者

お礼

ProKaseifu さん 結局、OutputStreamWriter を使うことでなんとかファイルに 書き込めるようになりました。 ありがとうございました!

回答No.1

この部分だけではなんとも・・・ ファイルOpen→書き込み→Closeしてるところのソースをのせてもらえるとアドバイスしやすいかと。 適当にエスパーすると、flushしてないのでちゃんとファイルが書き込まれていない、close忘れて書き込まれていない。 とかですかね。 質問とは関係ありませんが、JDK1.2以降使ってらっしゃるならVectorではなくArrayList使ったほうがよいかと。(同期する必要があるならわからないでもないですが、必要ならArrayListをsynchronizeすればいいわけでけで・・・)

sora-pon
質問者

補足

回答ありがとうございます。ソースは以下のようになっています。 途中の{}が抜けているかもしれませんが… for(k = 0; k < len; k++){ try { FileReader fr = new FileReader(args[k]); BufferedReader br = new BufferedReader(fr); StreamTokenizer st = new StreamTokenizer(br); while(st.nextToken() != StreamTokenizer.TT_EOF){ switch(st.ttype){ case StreamTokenizer.TT_WORD: n = st.sval; if() Word.addElement(previousToken); else previousToken = n; }} fr.close(); }catch (IOException e) { //エラー処理 System.out.println(k+1 +"番目のファイルが存在しません"); }}try{ FileWriter fw = new FileWriter("result.txt"); BufferedWriter bw = new BufferedWriter(fw); int wmax = Word.size(); int all = wmax; for(i = 0; i < wmax; i++){ count = 0; keyword = Word.elementAt(i).toString(); for(j = i; j < wmax; j++){ search = Word.elementAt(j).toString(); if(word.equals(search)){ count++; if(i != j){ Word.removeElementAt(j); wmax--; }}} bw.write("KEYWORD" +keyword+ "COUNT" +count+ "\n"); } fw.close(); } 複数のファイルを読み込んで要素数を増やしていこうと思ったので単純にVectorにしてしまいました。勉強不足なものでArrayListなるものの存在を知りません。。調べてみます!

関連するQ&A