バイナリーファイル
日本語 | 2進ファイル |
英語 | binary file |
ふりがな | ばいなりーふぁいる |
フリガナ | バイナリーファイル |
テキストファイル以外のファイル。
ファイルの種類のひとつ。プログラム独自の形式でデータが書き込まれているファイル。そのため、そのプログラムで読み込むか、解析してそのファイルを読み解く必要がある。
実際には、「テキストファイル」の対となるファイル形式として使われ、テキストファイル以外のファイルは全てバイナリーファイルであると言える。
また、ファイルの入出力形式を指す場合もある。バイナリーファイル形式で入出力することで、ファイル中身をバイト単位で処理することができる。テキストファイルをバイナリーファイル形式で入出力することで、文字コードにとらわれない処理をすることができる。
JavaではFileInputStreamクラスやFileOutputStreamクラス等のストリームクラスを用いて読み書きを行う。
ファイルの種類のひとつ。プログラム独自の形式でデータが書き込まれているファイル。そのため、そのプログラムで読み込むか、解析してそのファイルを読み解く必要がある。
実際には、「テキストファイル」の対となるファイル形式として使われ、テキストファイル以外のファイルは全てバイナリーファイルであると言える。
また、ファイルの入出力形式を指す場合もある。バイナリーファイル形式で入出力することで、ファイル中身をバイト単位で処理することができる。テキストファイルをバイナリーファイル形式で入出力することで、文字コードにとらわれない処理をすることができる。
JavaではFileInputStreamクラスやFileOutputStreamクラス等のストリームクラスを用いて読み書きを行う。
// Sample.java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class Sample
{
public static void main( String[] args )
{
// 入力ファイルの絶対パス。
// バイナリーファイルとして読み込むので文字コードとかは適当で。
String inputFilePath = "D:/from.txt";
// 出力ファイルの絶対パス。
// ファイルは存在しなくても構いません。
// というか存在すると上書きされます。
String outputFilePath = "D:/to.txt";
// FileReaderクラスとFileWriterクラスの参照型変数。
// ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try
{
// まずFileReaderクラスを作ります。
// このクラス経由でファイルから文字列を取得します。
File inputFile = new File( inputFilePath );
fileInputStream = new FileInputStream( inputFile );
// 取得した文字列を格納するArrayListクラスを作ります。
ArrayList arylst = new ArrayList();
while( true )
{
// read()メソッドでファイルから1バイト取得します。
int i = fileInputStream.read();
if( i == -1 )
{
// -1が来たら終了です。
break;
}
// 受け取ったデータを追加します。
arylst.add( new Integer( i ) );
// 16進数形式で出力します。
System.out.println( Integer.toHexString( i ) );
}
// まずFileOutputStreamクラスを作ります。
// このクラス経由でファイルへバイナリーデータを書き込みます。
fileOutputStream = new FileOutputStream( outputFilePath );
for( int iF1 = 0; iF1 < arylst.size(); ++iF1 )
{
Integer integer = (Integer)arylst.get( iF1 );
// write()メソッドでファイルに書き込みます。
fileOutputStream.write( integer.intValue() );
}
// to.txtを確認してください。from.txtと同じデータが
// 書き込まれているはずです。
}
catch( IOException e )
{
// ファイルが無かった場合等に、この
// IOException例外が投げられます。
e.printStackTrace();
}
finally
{
// ファイルを扱ったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
try
{
if( fileInputStream != null )
{
fileInputStream.close();
}
}
catch( IOException e )
{
// close()メソッドはIOExceptionがthrows指定されているので
// 一応受け取ります。
e.printStackTrace();
}
// 同じことをFileWriterの方にもします。
try
{
if( fileOutputStream != null )
{
fileOutputStream.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class Sample
{
public static void main( String[] args )
{
// 入力ファイルの絶対パス。
// バイナリーファイルとして読み込むので文字コードとかは適当で。
String inputFilePath = "D:/from.txt";
// 出力ファイルの絶対パス。
// ファイルは存在しなくても構いません。
// というか存在すると上書きされます。
String outputFilePath = "D:/to.txt";
// FileReaderクラスとFileWriterクラスの参照型変数。
// ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try
{
// まずFileReaderクラスを作ります。
// このクラス経由でファイルから文字列を取得します。
File inputFile = new File( inputFilePath );
fileInputStream = new FileInputStream( inputFile );
// 取得した文字列を格納するArrayListクラスを作ります。
ArrayList arylst = new ArrayList();
while( true )
{
// read()メソッドでファイルから1バイト取得します。
int i = fileInputStream.read();
if( i == -1 )
{
// -1が来たら終了です。
break;
}
// 受け取ったデータを追加します。
arylst.add( new Integer( i ) );
// 16進数形式で出力します。
System.out.println( Integer.toHexString( i ) );
}
// まずFileOutputStreamクラスを作ります。
// このクラス経由でファイルへバイナリーデータを書き込みます。
fileOutputStream = new FileOutputStream( outputFilePath );
for( int iF1 = 0; iF1 < arylst.size(); ++iF1 )
{
Integer integer = (Integer)arylst.get( iF1 );
// write()メソッドでファイルに書き込みます。
fileOutputStream.write( integer.intValue() );
}
// to.txtを確認してください。from.txtと同じデータが
// 書き込まれているはずです。
}
catch( IOException e )
{
// ファイルが無かった場合等に、この
// IOException例外が投げられます。
e.printStackTrace();
}
finally
{
// ファイルを扱ったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
try
{
if( fileInputStream != null )
{
fileInputStream.close();
}
}
catch( IOException e )
{
// close()メソッドはIOExceptionがthrows指定されているので
// 一応受け取ります。
e.printStackTrace();
}
// 同じことをFileWriterの方にもします。
try
{
if( fileOutputStream != null )
{
fileOutputStream.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
}
}
}
// Sample.java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; public class Sample { public static void main( String[] args ) { // 入力ファイルの絶対パス。 // バイナリーファイルとして読み込むので文字コードとかは適当で。 String inputFilePath = "D:/from.txt"; // 出力ファイルの絶対パス。 // ファイルは存在しなくても構いません。 // というか存在すると上書きされます。 String outputFilePath = "D:/to.txt"; // FileReaderクラスとFileWriterクラスの参照型変数。 // ここで作っておくのはfinallyでclose()メソッドを呼ぶためです。 FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { // まずFileReaderクラスを作ります。 // このクラス経由でファイルから文字列を取得します。 File inputFile = new File( inputFilePath ); fileInputStream = new FileInputStream( inputFile ); // 取得した文字列を格納するArrayListクラスを作ります。 ArrayList arylst = new ArrayList(); while( true ) { // read()メソッドでファイルから1バイト取得します。 int i = fileInputStream.read(); if( i == -1 ) { // -1が来たら終了です。 break; } // 受け取ったデータを追加します。 arylst.add( new Integer( i ) ); // 16進数形式で出力します。 System.out.println( Integer.toHexString( i ) ); } // まずFileOutputStreamクラスを作ります。 // このクラス経由でファイルへバイナリーデータを書き込みます。 fileOutputStream = new FileOutputStream( outputFilePath ); for( int iF1 = 0; iF1 < arylst.size(); ++iF1 ) { Integer integer = (Integer)arylst.get( iF1 ); // write()メソッドでファイルに書き込みます。 fileOutputStream.write( integer.intValue() ); } // to.txtを確認してください。from.txtと同じデータが // 書き込まれているはずです。 } catch( IOException e ) { // ファイルが無かった場合等に、この // IOException例外が投げられます。 e.printStackTrace(); } finally { // ファイルを扱ったら、最後にclose()メソッドを呼んで // 後処理をします。また、これは必ず行うため、 // finally内で行います。 try { if( fileInputStream != null ) { fileInputStream.close(); } } catch( IOException e ) { // close()メソッドはIOExceptionがthrows指定されているので // 一応受け取ります。 e.printStackTrace(); } // 同じことをFileWriterの方にもします。 try { if( fileOutputStream != null ) { fileOutputStream.close(); } } catch( IOException e ) { e.printStackTrace(); } } } }