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