電子書籍の厳選無料作品が豊富!

すみません、初心者です。Javaでテキストファイルから一行の文字列を読み込み、Stringの配列に格納したいと思っています。具体的には、マシンの/tmp/test.txtを読み込み、空白行は無視して格納したいです。ウェブを参考にして、以下のようには出来たのですが、最初にStringの配列を20個宣言しており、これをどうにかテキストファイルの行(マイナス空白行)の数だけ宣言させたいです。(理由はファイルによっては想定以上の個数の場合も有り得ますし、余分なメモリを使用することになるのと、後からこの配列を使用しやすい、といった諸々で。。)以下のコードをどのように変えると実現出来るかご教示頂けませんでしょうか。
(一行あたりの文字列はつながっており、空白が間に入る事はありません)
import java.io.*;
public class test {
public static void main(String[] args) throws Exception {
int i=0;
String[] str = new String[20];
FileReader fr = new FileReader("/tmp/test.txt");
StreamTokenizer st=new StreamTokenizer(fr);
while(st.nextToken()!=StreamTokenizer.TT_EOF) {
System.out.println(st.sval+" ");
str[i]=st.sval;
i++;
}
fr.close();
}
}

(test.txtが以下の場合)
-----------------------
fdjosa
djsoafdjfdajof
jsoafds
fdsaoofdafd

fdjso

fjds

-----------------------
(配列は以下になることを想定)
str[0]=fdjosa
str[1]=djsoafdjfdajof
str[2]jsoafds
str[3]=fdsaoofdafd
str[4]=fdjso
str[5]=fjds
(*配列数であるstr.lengthは6)

A 回答 (1件)

Listを使ってみてはいかがでしょう?



空白行を飛ばすのなら、
if(st.sval.equals("")) continue;
とかどうでしょう?

参考URL:http://www.j2ee.me/javase/ja/6/docs/ja/api/java/ …
    • good
    • 0
この回答へのお礼

ありがとうございました。できました。

お礼日時:2009/02/02 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!