フロー:
* 入力ストリームと出力ストリーム: バイト ストリームと文字ストリーム。
* 入出力: ベンチマークはメモリ、
* データがメモリに入る: これを入力といいます
* 出力はメモリから書き込まれます。これは出力と呼ばれます。
※以下のクラスはすべてjava.ioパッケージに属します。
バイト入力ストリーム (InputStream 抽象クラス) :
* 一般的な方法:
* int read();//データのバイトを読み取り、読み取ったデータを返します。データがない場合は -1 を返します
* int read(byte[] b);//読み取ったデータはバイト配列に格納され、読み取った長さが返されます。データがない場合は -1 を返します。
* void close();
* よく使用されるサブクラス: FileInputStream
※施工方法:
* public FileInputStream(文字列パス名);
* public FileInputStream(ファイルパス名);
バイト出力ストリーム (OutputStream 抽象クラス):
* 一般的な方法:
* void write(int i);//データのバイトを書き込みます
* void write(byte[] b);
* void write(byte[] b,int offset,int len);
* void flash();//バッファをリフレッシュ(空)します。
* void close();
* よく使用されるサブクラス: FileOutputStream
※施工方法:
* //パラメータの特定のディレクトリが存在しない場合、FileNotFoundExceptionがスローされます
* public FileOutputStream(文字列パス名);
* public FileOutputStream(ファイルパス名);
* public FileOutputStream(String pathname,boolean append);
* public FileOutputStream(ファイルパス名,ブール値追加);
※この4つの工法は実際には一番下の4番目の工法を使用しています。
* 最初の 2 つの構築方法では、ブール値パラメーターはデフォルトで false (カバレッジを示す) に設定されます。
* 注: 基礎となるデータの送信には、文字ストリームではなく、バイト ストリームのみが存在します。
文字入力ストリーム (リーダー抽象親クラス) :
* 一般的な方法:
* int read();//1 文字 (中国語に注意) データを読み取り、データが読み込まれない場合は -1 を返します。
* int read(char[] ch);//データを読み取り、char 配列に格納し、読み取り長を返します。データがない場合は、-1 を返します。
* void close();//リソースを解放する
* よく使用されるサブクラス: FileReader
※施工方法:
* //次の構築メソッドを呼び出すと、基礎となる層は長さ 8192 のバイト配列を作成します。
* //毎回8192バイトのデータを読み込みます(データ量が多い場合とデータ量が少ない場合)
* public FileReader(String pahtname);
* public FileReader(ファイルパス名);
文字出力ストリーム (ライター抽象親クラス):
※会員方式:
* void write(int b);//文字データを書き込む
* void write(char[] ch);
* void write(char[] ch,int offset,int len);
* void write(String str);
* void write(String str,int offset,int len);
* void flash();//バッファ内のデータを書き出すことができます
* void close();//ストリームを閉じてリソースを解放します。バッファ内のデータは、ストリームを閉じる前に書き出されます。
* よく使用されるサブクラス: FileWriter
* 構築方法: //デフォルトは false で、上書きを意味します
* //次の構築メソッドを呼び出すと、下層で長さ 8192 のバイト配列 (バッファ) が作成されます。
* //バッファ内のデータがいっぱいで格納できない場合、自動的にバッファ内のデータを書き込みます
* public FileWriter(文字列パス名);
* public FileWriter(ファイルパス名);
* public FileWriter(文字列パス名,ブール値追加);
* public FileWriter(ファイルパス名,ブール値追加);
システムクラス:
* static String lineSeparator();//オペレーティング システムの改行文字を取得します
Properties はHashtable のサブクラスです。
※所属パッケージ:java.util;
※施工方法:
* パブリック プロパティ();
※会員方式:
* オブジェクト setProperty(文字列キー,文字列値);
* 文字列 getProperty(文字列キー);
* Set<String> stringPropertyNames();
* void ストア(OutputStream os,文字列コメント);
* void store(Writer w,文字列コメント);
* voidload(InputStreamは);
* voidload(リーダーは);
* バイトバッファリングされた入力ストリームおよびバイトバッファリングされた出力ストリーム機能: IO 時間を削減し、IO 効率を向上させます。
バイトバッファリングされた入力ストリーム (InputStream):
* よく使用されるサブカテゴリ:
* ファイル入力ストリーム
* BufferedInputStream:
※施工方法:
* //次の構築メソッドを呼び出すと、基礎となる層は長さ 8192 のバイト配列を作成します。
* //初めて読み取る場合、読み取ったデータはバイト配列に格納されます
* // 次に、配列の対応する位置から要素を取得し、操作を実行します
* public BufferedInputStream(InputStream は);
* //以下の構築メソッドはバッファサイズを単独で指定することができます
* public BufferedInputStream(InputStream は、int サイズ);
バイトバッファリングされた出力ストリーム (OutputStream):
* よく使用されるサブカテゴリ:
* ファイル出力ストリーム
* BufferedOutputStream:
※施工方法:
* //次の構築メソッドを呼び出すと、基礎となる層は長さ 8192 のバイト配列を作成します。
* //データを書き込むとき、データはこの 8192 バイト配列に格納されます
* //配列にデータを格納できない場合、またはflush(close)メソッドが明示的に呼び出された場合、バッファ内のデータは書き出されます。
* public BufferedOutputStream(OutputStream os);
* //以下の構築方法により、バッファのサイズを指定できます
* public BufferedOutputStream(OutputStream os,int size);
文字バッファリングされた入力ストリーム (リーダー):
* よく使用されるサブカテゴリ:
* ファイルリーダー
//FileReader を呼び出すと、基礎となる層は長さ 8192 のバイト配列を作成します。
* バッファードリーダー:
※施工方法:
* //次の構築メソッドを呼び出すと、基礎となる層は長さ 8192 の char 配列を作成します
* //readメソッドを呼び出し、データを読み取り、8192のバイト配列に格納します
* //8192byte配列のデータを文字に変換し、8192のchar配列に格納
* // char 配列内の対応する位置から要素を取得し、操作を実行します
* public BufferedReader(Reader r);
* public BufferedReader(Reader r,int size);
※会員方式:
* String readLine();// データ行を読み取り、データがない場合は null を返します
* //文字入力ストリームとバッファリングされた文字入力ストリームの読み取りデータ、読み取り数は同じです
* //バイトから文字への変換に高い効率が反映されます。
* InputStreamReader: // 入力ストリームを変換します
※施工方法:
* //このコンストラクターは、デフォルトの文字エンコーディング (UTF-8) を使用してデータを読み取ります。
* public InputStreamReader(InputStream は);
* //この構築メソッドは、自身で指定されたコードを使用してデータを読み取ります
* public InputStreamReader(InputStream is,String charsetName);
文字バッファリングされた出力ストリーム (ライター):
* よく使用されるサブカテゴリ:
* ファイルライター
* //FileWriter を呼び出すと、基礎となるレイヤーは長さ 8192 のバイト配列を作成します
* BufferedWriter
※施工方法:
* //次の構築メソッドを呼び出すと、基礎となる層は長さ 8192 の char 配列を作成します
* //write メソッドを呼び出すと、データは 8192 の char 配列に書き込まれます
* //8192のchar配列にデータが格納できない場合は一律(バイト化)変換します
* //8192のバイト配列に保存し、8192バイトの配列にデータを書き出す
* public BufferedWriter(Writer w);
* //次の構築メソッドを呼び出してバッファのサイズを指定します
* public BufferedWriter(Writer w,int size);
※会員方式:
* void newLine();//改行を書きます
* //文字バッファ出力ストリームの効率は、文字からバイトへの変換に反映されます。 //書き込み回数は両方(FileWriter、BufferedWriter)で同じです。
OutputStreamWriter: // 出力ストリームを変換する
※施工方法:
* //デフォルトの文字エンコーディングを使用してデータを書き込みます
* パブリック OutputStreamWriter(OutputStream os);
* //独自に指定した文字エンコーディングを使用してデータを書き込みます
* public OutputStreamWriter(OutputStream os,String charsetName);
シリアル化操作、オブジェクト出力ストリームがオブジェクトを書き出す
予防:
a. シリアル化されたオブジェクトはシリアル化可能タイプである必要があります。 シリアル化可能はインターフェイスです。
b. メンバー変数の型もシリアル化可能型でなければなりません
c. transient キーワードで変更されたメンバー変数はシリアル化できない場合があります
逆シリアル化操作。オブジェクト入力ストリームがデータを読み取り、オブジェクトに変換します。
予防:
a. シリアライズ後はクラスファイルの構造を変更することはできないため、デシリアライズを変更するとエラーが報告されます。クラス ファイルの構造が変更されないことを保証できない場合は、メンバー変数 (定数):serialVersionUID をクラスに追加できます。自動追加機能があり、クラス名にマウスを置くと最初のクラスが選択されます。
PrintStream : 印刷ストリーム
※会員方式:
* void println();
* void print(パラメータ);
※施工方法:
* public PrintStream(文字列パス名);
* public PrintStream(ファイルパス名);