トップページ -> 実践知識 -> Java プログラミング入門 -> テキストファイル入出力
[サイトマップへ]  

テキストファイル入出力

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

ファイルオープン,テキストファイルの読み込みと書き出し,日本語文字コード,行単位での読み込みと書き出し

参考Webページ: http://www.stackasterisk.jp/tech/java/IOapi02_01.jsp


標準入力から1行単位での読み込み(BufferedReader の readLine() メソッドを利用)

要点

標準入力から1行単位での読み込むと,そのまま標準出力に書き出す.

package hoge.hoge.com;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class HelloWorld {
	/* 標準入力から1行単位での読み込むと,そのまま標準出力に書き出す. */
	private static String welcome = "入力してください:";
	private static String prompt = "> ";
	
	public static void main(String[] args) {
		try{
			String line;
			BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
			System.out.println("入力してください:");
			System.out.print(prompt);
			while( (line=buf.readLine()) != null ) {
				System.out.println(line);
				System.out.print(prompt);
			}
		}	
		catch(IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}


テキストファイルから1行単位での読み込み,書き出し(FileInputStream, FileOutputStream を利用)

サンプルプログラム:FileIOTest.java

package hoge.hoge.com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class HelloWorld {
	private static String inFileName = "c:\\in.txt";
	private static String outFileName = "c:\\out.txt";
	/* Shift_JIS, ISP-2022-JP, EUC-JP Windows-31J */
	/* 出力時に JISAutoDetect の指定は不可 */
	private static String outFileCoding = "Shift_JIS";
	
	/* テキストファイルの読み出しと書き込みのサンプルプログラム */
	/* (注)バイナリファイルのときは,DataInputStream, DataOutputStream */
	public static void main(String[] args) {
		try{
			String line;
			BufferedReader buf =
				new BufferedReader( new InputStreamReader( new FileInputStream( inFileName ), "JISAutoDetect" ) );
			/* ファイルが存在しない場合には新たに作成.存在する場合には上書き */
			BufferedWriter outFile =
                                new BufferedWriter( new OutputStreamWriter( new FileOutputStream( outFileName ), outFileCoding ) );
			while( (line=buf.readLine()) != null ) {
				outFile.write(line);
				outFile.newLine();
				System.out.println(line);
			}
			buf.close();
			outFile.flush();
			outFile.close();
		}	
		catch(IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}