Java学習編のIOストリーム(バイトストリーム)


バイトストリーム
先のブログでは、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();
	}
}