alphaのjava備忘録

alphaが勉強したことを書いていくブログ

Javaでtxtファイルを読み込むには

Javaでファイルを読み込んだり書き込んだりできたらいい、処理結果をファイルとして保存・読込できるし。というわけで今日はJavaのファイル読み込みを勉強してみる。JavaではファイルをFileクラスのオブジェクトして扱うことでファイル操作を実現しているんだね。


今日のところは一文字ずつ読みこんでコンソールに出力する処理を書いてみる。
ポイントは、

 ・テキストファイルの先頭一文字を読み込むにはFileReaderクラスのread()メソッドを使用が必要
   ・FileReaderクラスのインスタンス化にはFileクラスのインスタンスが必要で、
   ・Fileクラスのインスタンスの作成にはテキストファイルのファイルパスが必要。
    (ファイルパスは特殊記号の関係で "\" ⇒ "\\" に変更が必要)

 ・read()メソッドを繰返処理することでテキストファイルの全文字の読み込みができる。
   ・read()メソッドの使用には繰返処理と繰返終了条件の記載が必要。

 ・FileReaderクラスのインスタンス化にはFileNotFoundExceptionのcatchが必要で
  read()メソッドの使用にはIOExceptionのcatchが必要。


読み込むのはtes.txtというテキストファイル。
作成したJavaファイルはFileOpen.java

tes.txt

A file was Read!


FileOpen.java

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileOpen {
	public static void main(String[] args){
		File fl = new File("C:\\testjava\\tes.txt");
		try{
			FileReader fr = new FileReader(fl);
			int fc = 0;
			while(fc != -1){
			fc = fr.read();
			System.out.print((char)fc);
			}
		}catch(FileNotFoundException e){
			System.out.println("File not found!!");
		}catch(IOException e){
			System.out.println("IOException!");
		}
	}
}
}

処理内容
(1)Fileクラスのインスタンスflをnewする。引数はファイルパス ("C:\\Users\\tes.txt") 。
(2)FileReaderクラスのインスタンスfrをnewする。引数はFileクラスのインスタンス (fl)。
~ここからtry~
(3)read()の戻り値を受け取るため、int型変数fcを初期化。
(4)fc が -1 にならない限り繰返処理。
(5)read()メソッド。fcにテキストファイルの一文字(の文字コード)を格納。戻り値はint型。
(6)fc をコンソールに出力。int型の文字コードをchar型でキャスト。
(7) (4)~(6)の処理を繰返。
(8)fc が -1 になる = テキストファイルの終端に至り、繰返処理が終了。
~ここまでtry~
(9)FileNotFoundExceptionをcatch。
(10)IOExceptionをcatch。

処理結果
A file was Read!

無事出力できた。


なお、本記事はこの記事を参考にしてます。
www.javadrive.jp