JavaA2Z

KAB-studio > プログラミング > JavaA2Z > テキストファイルとは

テキストファイル

日本語 文書ファイル
英語 text file
ふりがな てきすとふぁいる
フリガナ テキストファイル

解説

文書が書き込まれているファイル
ファイルの種類のひとつ。何らかの文字コード文字列が書き込まれたファイル。ほとんどの場合はOS標準の文字コードで書き込まれており、OS標準のテキストエディタで開くことでその文字列を表示・編集することができる。
バイナリーファイル」の対となるファイルバイナリーファイルが「中身を解析しなければどのような情報が書き込まれているのか判らない」のに対し、テキストファイルは文字コードという共通形式で書き込まれているためテキストエディタ等で簡単に読むことができる。逆に言えば、エディタが解析できない文字コードで書かれたファイルバイナリーファイルも同然と言うこともできる。
また、ファイルの入出力方法を指す場合もある。入出力時に余分な処理をしないバイナリーファイル形式と違い、テキストファイル形式での入出力時には、文字コードの変換や改行コードの変換がわれるからである。
 
JavaではFileReaderクラスFileWriterクラス等のファイル入出力クラスやその他ストリームクラスを用いて読み書きをう。
OS標準の文字コードの場合、これらのクラスはOS標準の文字コードからJava標準の文字コードであるUnicodeに変換し、さらに改行コードも変換する。
それ以外の文字コードの場合には変換処理や文字コードの指定等が必要なため注意が必要。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 入力ファイルの絶対パス。
        // 文字コードはそのOSの標準文字コードで保存してください。
        String inputFilePath = "D:/from.txt";
        // 出力ファイルの絶対パス。
        // ファイルは存在しなくても構いません。
        // というか存在すると上書きされます。
        String outputFilePath = "D:/to.txt";
        // FileReaderクラスとFileWriterクラスの参照型変数。
        // ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
        FileReader fileReader = null;
        FileWriter fileWriter = null;
        try
        {
            // まずFileReaderクラスを作ります。
            // このクラス経由でファイルから文字列を取得します。
            fileReader = new FileReader( inputFilePath );

            // 取得した文字列を格納するStringBufferクラスを作ります。
            StringBuffer strbuf = new StringBuffer();
            while( true )
            {
                // read()メソッドでファイルから1文字取得します。
                int i = fileReader.read();
                if( i == -1 )
                {
                    // -1が来たら終了です。
                    break;
                }
                // 受け取った文字を追記します。
                strbuf.append( (char)i );
            }

            // とりあえずファイルの中身を出力します。
            System.out.println( strbuf.toString() );
            // (ファイルの中身)

            // まずFileWriterクラスを作ります。
            // このクラス経由でファイルへ文字列を書き込みます。
            fileWriter = new FileWriter( outputFilePath );
            // write()メソッドでファイルに書き込みます。
            fileWriter.write( strbuf.toString() );
            // to.txtを確認してください。from.txtの文字列が
            // 書き込まれているはずです。
        }
        catch( IOException e )
        {
            // ファイルが無かった場合等に、この
            // IOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            // ファイルを扱ったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( fileReader != null )
                {
                    fileReader.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 同じことをFileWriterの方にもします。
            try
            {
                if( fileWriter != null )
                {
                    fileWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}
// Sample.java
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        // 入力ファイルの絶対パス。
        // 文字コードはそのOSの標準文字コードで保存してください。
        String inputFilePath = "D:/from.txt";
        // 出力ファイルの絶対パス。
        // ファイルは存在しなくても構いません。
        // というか存在すると上書きされます。
        String outputFilePath = "D:/to.txt";
        // FileReaderクラスとFileWriterクラスの参照型変数。
        // ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
        FileReader fileReader = null;
        FileWriter fileWriter = null;
        try
        {
            // まずFileReaderクラスを作ります。
            // このクラス経由でファイルから文字列を取得します。
            fileReader = new FileReader( inputFilePath );

            // 取得した文字列を格納するStringBufferクラスを作ります。
            StringBuffer strbuf = new StringBuffer();
            while( true )
            {
                // read()メソッドでファイルから1文字取得します。
                int i = fileReader.read();
                if( i == -1 )
                {
                    // -1が来たら終了です。
                    break;
                }
                // 受け取った文字を追記します。
                strbuf.append( (char)i );
            }

            // とりあえずファイルの中身を出力します。
            System.out.println( strbuf.toString() );
            // (ファイルの中身)

            // まずFileWriterクラスを作ります。
            // このクラス経由でファイルへ文字列を書き込みます。
            fileWriter = new FileWriter( outputFilePath );
            // write()メソッドでファイルに書き込みます。
            fileWriter.write( strbuf.toString() );
            // to.txtを確認してください。from.txtの文字列が
            // 書き込まれているはずです。
        }
        catch( IOException e )
        {
            // ファイルが無かった場合等に、この
            // IOException例外が投げられます。
            e.printStackTrace();
        }
        finally
        {
            // ファイルを扱ったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( fileReader != null )
                {
                    fileReader.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 同じことをFileWriterの方にもします。
            try
            {
                if( fileWriter != null )
                {
                    fileWriter.close();
                }
            }
            catch( IOException e )
            {
                e.printStackTrace();
            }
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/07/01
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。