Java学習編のIOストリーム(バイトストリーム)
バイトストリーム
先のブログでは、Fileクラスの紹介やメソッドのまとめがあり、ファイルやフォルダを操作しているが、ファイルに対するデータ操作は行われていない.次の文章では、ファイルにデータを書くか、ファイルのデータを読み取るかを始め、バイトストリームの読み書き操作をまとめている.
バイト入力ストリームInputStream
InputStreamはバイト入力ストリームのすべてのクラスのスーパークラスを表し,バイト入力ストリームの基本的な共通機能方法を定義する.
読み方
int read():1バイトを読み出して返し、1 int readを返さない(byte[] b):一定量のバイト数を読み出し、バイト配列に格納し、読み出したバイト数を返す.
サブクラスFileInputStreamの構築方法
FileInputStream(File file)FileInputStream(String name)構築方法の役割は、このストリームオブジェクトにデータソースをバインドすることです.
≪インスタンス|Instance|emdw≫
バイトを読み込む
複数バイトの読み込み
バイト出力ストリームOutputStream
OutputStreamは、出力バイトストリームのすべてのクラスのスーパークラスを表し、操作されるデータはすべてバイトである.このように、ストリームはファイル内の1バイトのみを操作し、出力バイトストリームの基本的な共通機能方法を定義し、多くのサブクラスがあり、サブクラスFileOutputStream(すなわちファイル出力ストリーム)はデータをファイルに書き込むために使用することができる.
書き方
write(int b)1バイトwrite(byte[]を書き込む b)書き込みバイト配列write(byte[] b,int off,int len)バイト配列を書き込み、offが書き込みを開始するインデックス、lenがいくつか書く
サブクラスFileOutputStreamの構築方法
FileOutputStream(File file)FileOutputStream(String name)構築方法の役割は、出力ストリームの出力目的をバインドすることです.
≪インスタンス|Instance|emdw≫
先のブログでは、Fileクラスの紹介やメソッドのまとめがあり、ファイルやフォルダを操作しているが、ファイルに対するデータ操作は行われていない.次の文章では、ファイルにデータを書くか、ファイルのデータを読み取るかを始め、バイトストリームの読み書き操作をまとめている.
バイト入力ストリームInputStream
InputStreamはバイト入力ストリームのすべてのクラスのスーパークラスを表し,バイト入力ストリームの基本的な共通機能方法を定義する.
読み方
int read():1バイトを読み出して返し、1 int readを返さない(byte[] b):一定量のバイト数を読み出し、バイト配列に格納し、読み出したバイト数を返す.
サブクラスFileInputStreamの構築方法
FileInputStream(File file)FileInputStream(String name)構築方法の役割は、このストリームオブジェクトにデータソースをバインドすることです.
≪インスタンス|Instance|emdw≫
バイトを読み込む
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\file.txt");
// , , 。
FileInputStream fis = new FileInputStream(file);
// 。 read(); 。
int ch = 0;
while((ch=fis.read())!=-1){
System.out.println("ch="+(char)ch);
}
// 。
fis.close();
}
}
複数バイトの読み込み
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo2 {
public static void main(String[] args) throws IOException {
/*
* : ,
*/
File file = new File("D:\\file.txt");
// , ,
FileInputStream fis = new FileInputStream(file);
//
// 1024
byte[] b = new byte[1024];
int len = 0;
// read len,
while((len=fis.read(b))!=-1){
System.out.println(new String(b,0,len));
}
fis.close();
}
}
バイト出力ストリームOutputStream
OutputStreamは、出力バイトストリームのすべてのクラスのスーパークラスを表し、操作されるデータはすべてバイトである.このように、ストリームはファイル内の1バイトのみを操作し、出力バイトストリームの基本的な共通機能方法を定義し、多くのサブクラスがあり、サブクラスFileOutputStream(すなわちファイル出力ストリーム)はデータをファイルに書き込むために使用することができる.
書き方
write(int b)1バイトwrite(byte[]を書き込む b)書き込みバイト配列write(byte[] b,int off,int len)バイト配列を書き込み、offが書き込みを開始するインデックス、lenがいくつか書く
サブクラスFileOutputStreamの構築方法
FileOutputStream(File file)FileOutputStream(String name)構築方法の役割は、出力ストリームの出力目的をバインドすることです.
≪インスタンス|Instance|emdw≫
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
// : 。
// 。
File file = new File("D:\\file.txt");
// 。 。
// , 。 , 。
FileOutputStream fos = new FileOutputStream(file);
// write 。
byte[] data = "abcde".getBytes();
fos.write(data);
// 。
fos.close();
}
}