package j2.lesson08;
import java.io.*;
/**
* 課題2101 - 解答例.
* ファイル内に一行ずつ書かれている整数を読み出し、その総和を表示するクラス.
* @author arakawa
* @version $Id: TotalInFile_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
*/
public class TotalInFile {
/**
* ファイル内に一行ずつ書かれている整数を読み出し、その総和を表示するプログラム。
* @param args 無視される
* @throws IOException 入出力例外が発生した場合
*/
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// print "ファイル名を入力:"
System.out.print("ファイル名を入力:");
// filename = コンソール入力 (String)
String filename = reader.readLine();
// file = filename のファイルを読み込み用に開く
BufferedReader file;
try {
file = new BufferedReader(new FileReader(filename));
}
// if filename が開けない
catch (FileNotFoundException e) {
// print filename + "が開けませんでした。", 改行
System.out.println(filename + "が開けませんでした。");
// プログラムを終了
return;
}
try {
// total = 各行に書かれている整数の合計
int total = 0;
while (true) {
String line = file.readLine();
if (line == null) {
break;
}
try {
total += Integer.parseInt(line);
}
// if 数値に変換できない行がある
catch (NumberFormatException e) {
// print "数値に変換できません。" + (変換できなかった文字列), 改行
System.out.println("数値に変換できません。" + line);
// プログラムを終了
return;
}
}
// print "合計は" + total
System.out.println("合計は" + total);
}
finally {
file.close();
}
}
}
|