DataInputStreamはint型やboolean型といったプリミティブ型およびString型の値としてバイナリファイルのバイトデータを読み込みます。
boolean readBoolean()
1 バイトの入力データを読み込んで、そのバイトがゼロ以外の場合は true、そのバイトがゼロの場合は false を返します。
byte readByte()
1 バイトの入力データを読み込んで返します。
char readChar()
入力データの char を読み込んで、char 値を返します。
double readDouble()
8 バイトの入力データを読み込んで、double 値を返します。
float readFloat()
4 バイトの入力データを読み込んで、float 値を返します。
void readFully(byte[] b)
入力ストリームから数バイトを読み込み、それをバッファー配列 b に格納します。
void readFully(byte[] b, int off, int len)
入力ストリームから len バイトを読み込みます。
int readInt()
4 バイトの入力データを読み込んで、int 値を返します。
String readLine()
入力ストリームから、次の行のテキストを読み込みます。
long readLong()
8 バイトの入力データを読み込んで、long 値を返します。
short readShort()
2 バイトの入力データを読み込んで、short 値を返します。
int readUnsignedByte()
1 バイトの入力データを読み込んで、int 型にゼロ拡張して結果を返します。
int readUnsignedShort()
2 バイトの入力データを読み込んで、0 0 65535 の範囲の int 値を返します。
String readUTF()
修正 UTF-8 形式でエンコードされた文字列を読み込みます。
DataOutputStreamクラスも同じくint型やboolean型といったプリミティブ型およびString型の値をバイナリファイルのバイトデータとして書き込みます。
void write(byte[] b)
出力ストリームに配列 b のすべてのバイトを書き込みます。
void write(byte[] b, int off, int len)
配列 b から len バイトを順番に出力ストリームに書き込みます。
void write(int b)
引数 b の下位 8 ビットを出力ストリームに書き込みます。
void writeBoolean(boolean v)
1 つの boolean 値を出力ストリームに書き込みます。
void writeByte(int v)
引数 v の下位 8 ビットを出力ストリームに書き込みます。
void writeBytes(String s)
文字列を出力ストリームに書き込みます。
void writeChar(int v)
2 バイトから構成される char 値を出力ストリームに書き込みます。
void writeChars(String s)
文字列 s 内の各文字を、1 文字ごとに 2 バイトずつ出力ストリームに順番に書き込みます。
void writeDouble(double v)
8 バイトから構成される double 値を出力ストリームに書き込みます。
void writeFloat(float v)
4 バイトから構成される float 値を出力ストリームに書き込みます。
void writeInt(int v)
4 バイトから構成される int 値を出力ストリームに書き込みます。
void writeLong(long v)
8 バイトから構成される long 値を出力ストリームに書き込みます。
void writeShort(int v)
引数の値を表す 2 バイトを出力ストリームに書き込みます。
void writeUTF(String str)
長さ情報の 2 バイトを出力ストリームに書き込みます。
DataInputStreamクラスで読み取れるバイナリファイルはDataOutputStreamクラスを使用して作成したファイルだけです。
そのためアプリケーション独自で読み書きするバイナリファイルに限られます。
package FileAccess; import java.awt.Button; import java.awt.Frame; import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class BinaryFileSample03 extends Frame implements ActionListener{ private static final long serialVersionUID = 1L; public static void main(String args[]){ new BinaryFileSample03(); } Button btnWrite; Button btnRead; public BinaryFileSample03(){ this.setTitle("BinaryFileSample03"); this.setSize(300,100); btnWrite = new Button("Write"); btnWrite.addActionListener(this); btnRead = new Button("Read"); btnRead.addActionListener(this); Panel p1 = new Panel(); p1.add(btnWrite); p1.add(btnRead); this.add(p1); this.setVisible(true); } public void actionPerformed(ActionEvent arg0) { if (arg0.getSource() == btnWrite){ write(); }else if (arg0.getSource() == btnRead){ read(); } } /* * 書込み */ private void write(){ FileOutputStream fos = null; BufferedOutputStream bos = null; DataOutputStream dos = null; try { fos = new FileOutputStream("D:/BinaryFileSample03.txt"); bos = new BufferedOutputStream(fos); dos = new DataOutputStream(bos); dos.writeBoolean(false); dos.writeInt(50); dos.writeBoolean(true); dos.writeUTF("文字列1"); dos.writeInt(100); dos.writeUTF("文字列2"); dos.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (dos != null){ dos.close(); } } catch (IOException e) { e.printStackTrace(); } } } /* * 読込み */ private void read(){ FileInputStream fis = null; BufferedInputStream bis = null; DataInputStream dis = null; try { fis = new FileInputStream("D:/BinaryFileSample03.txt"); bis = new BufferedInputStream(fis); dis = new DataInputStream(bis); boolean b1 = dis.readBoolean(); int i1 = dis.readInt(); boolean b2 = dis.readBoolean(); String s1 = dis.readUTF(); int i2 = dis.readInt(); String s2 = dis.readUTF(); System.out.println(b1); System.out.println(b2); System.out.println(i1); System.out.println(i2); System.out.println(s1); System.out.println(s2); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (dis != null){ dis.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
0 件のコメント:
コメントを投稿