next up previous contents
Next: A. 熱方程式プログラム (いつまでも工事中) Up: 5 テキスト・ファイルの入出力 Previous: 5.2 簡略化バージョン

5.3 1行に複数データ

次の FileIOTest3.java では、1行の中に複数のデータを入れて、 それを分解して読み取っている。 果たしてこうするものなのか迷うが… (何となく複雑な書式を使うのは、 出力先が紙であった時代の名残であって、 入力することを考えると「違う」のかな、と)


   1 /*
   2  * FileIOTest3.java
   3  */
   4 
   5 import java.io.BufferedReader;
   6 import java.io.BufferedWriter;
   7 import java.io.FileReader;
   8 import java.io.FileWriter;
   9 import java.util.StringTokenizer;
  10 
  11 public class FileIOTest3 {
  12 
  13     public static void main(String[] args) {
  14         try {
  15             BufferedReader in = new BufferedReader(new FileReader("input.txt"));
  16             BufferedWriter out = new BufferedWriter(new FileWriter("output.txt"));
  17             String s;
  18             s = in.readLine();
  19             StringTokenizer st = new StringTokenizer(s, " ");
  20             if (st.countTokens() != 2) {
  21                 System.out.println("Input Error");
  22                 System.exit(1);
  23             }
  24             double a = Double.valueOf(st.nextToken()).doubleValue();
  25             double b = Double.valueOf(st.nextToken()).doubleValue();
  26             double wa, sa, seki, syou;
  27             wa = a + b;
  28             sa = a - b;
  29             seki = a * b;
  30             syou = a / b;
  31             System.out.printf("%20.15f %20.15f %20.15f %20.15f\n", wa, sa, seki, syou);
  32             s = String.format("%20.15f %20.15f %20.15f %20.15f\n", wa, sa, seki, syou);
  33             out.write(s);
  34             out.newLine();
  35             out.close();
  36             in.close();
  37         }
  38         catch (Exception e) {
  39             e.printStackTrace();
  40         }
  41     }
  42 
  43 }


next up previous contents
Next: A. 熱方程式プログラム (いつまでも工事中) Up: 5 テキスト・ファイルの入出力 Previous: 5.2 簡略化バージョン
Masashi Katsurada
平成20年2月28日