Aritalab:Lecture/Programming/Java/FileRead

From Metabolomics.JP
< Aritalab:Lecture | Programming | Java
Revision as of 23:35, 1 June 2011 by Adm (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

タブ区切りテキストを読み込む

ファイルから1行ずつ読み込んで、タブ区切りの2つ目だけを出力、最後に総数を出力するプログラムです。JavaのStringクラスがもつ split(区切り記号) 関数を使って簡単に記述できます。

 public void readFromFile(String filename)
      {
        try
          {
            String line = null;
            int counter =0;
            BufferedReader br = new BufferedReader(
                new FileReader(filename));
            while ((line = br.readLine()) != null)
              {
                String[] data = line.split("\t");
                /* data is an array of tab-separated strings */
                System.out.println( data[1] );
                counter++;
              }
            System.out.println("Read " + counter + " lines.");
          }
        catch (Exception e)
          { e.printStackTrace(); }
      }

コンソールから文字列を読み込む

実行するとプロンプト”>”をコンソールに出力し、キーボードから文字列を受け付けます。 Qを入力すると終了し、それまでに入力した行をベクター(配列)にいれて返します。 Syste.in という入力ストリームを BufferedReader に入れるのがミソです。

import java.util.Vector;
  :
  public Vector<String> readFromKeyboard()
    {
      Vector<String> V = new Vector<String>();
      try { 
        BufferedReader br = new BufferedReader
          (new InputStreamReader(System.in));
        String line =null;
        while (true)
          { /* Loop until input is 'Q' */
            System.out.print(">");
            line = br.readLine();
            /* Exit from the loop */
            if ((line == null) || line.equals("Q"))
              break;
            V.add(line);
          }
      } 
      catch (Exception e)
        { e.printStackTrace(); }
      return V;
    }
Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox