次の 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 }
|