OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

Vectorの使用法

  • すぐに回答を!
  • 質問No.232223
  • 閲覧数73
  • ありがとう数1
  • 気になる数1
  • 回答数2
  • コメント数0

お礼率 8% (27/308)

現在、課題の作成中なんですけどうまくいかないので教えてください。
ファイルに表示されているアクセスログファイルを別のファイルに表示させるコードなんですが、
import java.util.*;
import java.io.*;

public class AccessLog{
  public static void main(String args[]){
    if(args.length != 1){
 System.exit(0);
    }
    String filename = args[0];
    Vector vector = new Vector();
    try{
     String line ;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename)));

while((line = reader.readLine()) != null){
vector.addElement(line);
writer.println(vector);
}

}catch(IOException e){
  System.out.println(e);
}
  }
}
Vectorの使い方がよくわからないので教えてください。宜しくお願いします。
通報する
  • 回答数2
  • 気になる1
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1

ソースの内容は別としてVectorについてですが 大きさが後から変更できる配列だと考えるとわかりやすいです。 new Vector(); でからの箱を用意します。 addElement(line);でlineを順番に箱に詰めていきます。 内容が知りたいのでしたら //i番目の内容 vector.elementAt(i); とします。 for(int i=0;i<vector.size ...続きを読む
ソースの内容は別としてVectorについてですが
大きさが後から変更できる配列だと考えるとわかりやすいです。
new Vector(); でからの箱を用意します。
addElement(line);でlineを順番に箱に詰めていきます。
内容が知りたいのでしたら
//i番目の内容
vector.elementAt(i);
とします。
for(int i=0;i<vector.size();i++){
 System.out.println(vector.elementAt(i));
}
とする事ですべての内容を表示できます。
参考URLに色々なJavaクラスの説明があります。参考にしてみてください。
お礼コメント
arusu

お礼率 8% (27/308)

大変参考になりました。ありがとうございました。
投稿日時 - 2002-03-10 22:00:26
  • 回答No.2

> 現在、課題の作成中なんですけどうまくいかないので教えてください。 上のコードを見ていて、気になったのは > while((line = reader.readLine()) != null){ >  vector.addElement(line); >  writer.println(vector);  ← ★ > } ★ のところでしょうか ...続きを読む
> 現在、課題の作成中なんですけどうまくいかないので教えてください。

上のコードを見ていて、気になったのは

> while((line = reader.readLine()) != null){
>  vector.addElement(line);
>  writer.println(vector);  ← ★
> }

★ のところでしょうか。
このままだと、reader(標準入力のようですが)から読み出した行を配列に格納して、
1行読む度にその時点で配列に入っている全ての内容をファイルに出力することになります。


そもそもなぜ、わざわざVectorオブジェクトに読み出したファイルの内容をいったん
格納しているのかは分かりませんが、どうしてもこの処理が必要なのであれば、

 while((line = reader.readLine()) != null) {
  vector.addElement(line);
 }
 for (int i = 0; i < vector.size(); i++) {
  writer.println((String)vector.get(i));
 }
 writer.flush();
 writer.close();

として、読み出した内容を全ての配列に格納して、読み出しが終わった段階でファイルに出力する
とすべきなのでは?

> Vectorの使い方がよくわからないので教えてください。宜しくお願いします。

Vectorについては、C_ranさんが説明されている通りですね
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ