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