HOME
会社情報
業務内容
製品紹介
事務革命
Web管理
自動生成ツール
その他商材
イベント
基本技術
採用情報
お問い合わせ
Java入門
Java言語3
|
Java言語5
4. Java入門4
ファイル入出力
ファイルには大きく分けてテキストとバイナリの2種類のファイルがあります。
バイナリファイルはテキストエディタでは文字として読めません。
Javaには用途によって色々なストリームクラスが存在するため、以下に良く
使用する入出力クラスを示します。
入力
FileInputStream FileをReadするための入力Streamを生成
InputStreamReader バイナリStreamからキャラクタStreamを生成
FileReader FileをReadするためのキャラクタStreamを生成
BufferedReader 入力Streamのバッファリングを行うデコレータ
出力
FileOutputStream FileへWriteするための出力Streamを生成
OutputStreamWriter バイナリStreamからキャラクタStreamを生成
FileWriter FileへWriteするためのキャラクタStreamを生成
BufferedWriter 出力Streamのバッファリングを行うデコレータ
PrintWriter 出力StreamへのText出力を容易にするためのデコレータ
例題
テキストファイルを読み込むプログラムを作成して下さい。
また、読み込んだ内容を標準出力に出力しなさい。
解答と解説
import java.io.*;
class FileReadTest1 {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(
new FileReader("file.txt"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println(e);
} finally{
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Java入門3では、標準入力のためSystem.inを指定していましたが、ファイル
入出力では、読み込むファイル名を指定します。ファイルを指定する際、
そのファイルがどこにあるかきちんと指定する必要があることに注意して下さい。
例) Dドライブ直下にファイルがある場合
"D:\\file.txt" 絶対パス指定
"..\\..\\file.txt" 相対パス指定
上記のように指定方法には絶対パスと相対パスの2種類あることを理解し、
必要に応じてどちらの指定方法を行うか判断して下さい。
プログラムはreadLine()でファイル内容を1行単位で取得し、標準出力に出力、
ファイル内容を読み終えるまでループすると言う簡単な内容となっています。
上記のことをふまえて、以下の問題を行ってください。
演習問題
12. 次に示すように各行に「県の名前,市の名前,その市の人口」がセットされて
いるperson.txtというファイルがあります。
person.txtファイル内容例
埼玉県,さいたま市,1063206
埼玉県,川越市,335107
埼玉県,熊谷市,156407
埼玉県,川口市,479260
埼玉県,行田市,85846
埼玉県,秩父市,58739
・
・
・
このファイルを読み込んで、次のように各項目をタブで区切って表示する
プログラムを作ってください。
出力例
埼玉県 さいたま市 1063206
埼玉県 川越市 335107
埼玉県 熊谷市 156407
埼玉県 川口市 479260
埼玉県 行田市 85846
埼玉県 秩父市 58739
・
・
・
13. 問題12のプログラムに県毎の人口集計機能を付けて下さい。
出力例
埼玉県 さいたま市 1063206
埼玉県 川越市 335107
埼玉県 熊谷市 156407
埼玉県 川口市 479260
埼玉県 行田市 85846
埼玉県 秩父市 58739
埼玉県 所沢市 336270
埼玉県 飯能市 82474
埼玉県 加須市 68232
埼玉県 本庄市 61210
埼玉県 東松山市 92188
合計:2818939 ←埼玉県の合計
千葉県 千葉市 916656
千葉県 銚子市 76030
千葉県 市川市 464655
千葉県 船橋市 567027
千葉県 館山市 50552
千葉県 木更津市 122838
千葉県 松戸市 473524
千葉県 野田市 150583
合計:2821865 ←千葉県の合計
<次回は「Java入門5」です。>
Java言語3
|
Java言語5
基本技術
SEへの道
Webマスターへの道
WEBいろいろ
Java入門
Script入門
OSGi入門
DBマスターへの道
ネットマスターへの道
組込みマスターへの道
小技集