仕上げJAVA_SE_ノート(ストリーム)

ストリーム

1 IOは、サマリーストリーム

デバイス間のデータ転送を処理するためのIOストリーム

アップロードとダウンロードファイル

を介してデータストリーム上のJavaオペレーション

Javaオブジェクトは、動作フローIOパッケージに使用されています

IOトラフィックの分類:

データフローによると:

(のためのメモリの点で)入力ストリーム、データが読み出されます

出力ストリーム、データ書き込み

データの種類によると:

バイトストリーム

文字ストリーム

どのような状況下での流れを利用していますか?

データを含むファイルを開き、内部の内容を読み取ることがあれば、Windowsのメモ帳を通じて文字ストリームです。他のストリームバイト。あなたは、ファイルがデフォルトのバイトストリームで使用されているかわからない場合。

IOは、共通の基本クラスをストリーム

抽象ベースクラスのバイトストリーム:のInputStream、OutputStreamの、

抽象ベースクラスの文字ストリーム:リーダー、ライター

注:これらの4つのサブクラスは、クラス名から派生して、サブクラス名の接尾辞として父親にクラス名です

以下のような:のInputStreamサブクラスのFileInputStream

以下のような:リーダーサブクラスFileReaderの

2 バイトストリームのデータが書き込まれ、

データを書き込む:データはハードディスクにメモリから書き込まれます。OutputStream

FileOutputStream

テキストファイルに書かれた言葉:「HelloWorldの」

コンストラクタ:

FileOutputStream(ファイルのファイル)

FileOutputStream(文字列名)

メンバーの方法:

intデータ型を記述します。public void //書き込み(int型B)

公共のボイドの書き込みデータの(バイト[] b)は//バイトの書き込み[]タイプ

公共のボイドの書き込みデータの書き込み//バイト[]種類、ここで指定された開始位置と長さ(バイト[] B、int型のlenオフINT)を。

成功したデータの書き込みの後、なぜ?リリースリソースを閉じる()すべきです

データ改行を達成するためにどのように?

Windowsの場合:\ rを\ nは

Linuxの場合:\ nは

Macの場合:\ rを

追加の書き込みデータを達成するためにどのように?

コンストラクタ:たFileOutputStream文字列  名、APPENDブール)// 2つのパラメータは、本当の最後に追加されます

3 、読み出されたデータのバイトストリーム

別のメモリ位置に、読み出したデータ。InputStream

FileInputStreamのは、ファイルを読みます

ただ、コンソールに読み出されたデータを書き込みます

FileInputStreamのコンストラクタ

FileInputStreamを(ファイルのファイル)

FileInputStreamを(文字列名)

メンバーの方法:

公共intは読んで()

公共intは読んで(バイト[] b)は

4 バイトバッファストリーム

BufferedOutputStreamが//需要のOutputStream

BufferedInputStreamを//需要のInputStream

IO

1 、転流(のOutputStreamWriter InputStreamReaderの

なぜ、変換後の流れは以下のとおりです。バイトストリームから文字のストリームは、いわゆる変換のOutputStreamWriterの流れから変換しました。

文字ストリーム処理部は、2バイトのUnicode文字が、それぞれ、文字、文字列またはアレイの動作は、バイトストリーム処理部は、バイト、バイト、バイト配列の操作です。それは、多言語の国をサポートしていますので、だから、文字ストリームは、ユニットからUnicodeの2バイト文字にJava仮想マシンのバイト文字によって、より良いです!それは中国語(テキスト)に関連している場合、オーディオファイル、写真、歌は、バイトストリームの良いポイントを使用する場合、および文字ストリーム良い点と。

OutputStreamWriter

コンストラクタ:

公共のOutputStreamWriter(OutputStreamをアウト)、出力バイトストリームに//必要

公共のOutputStreamWriter(OutputStreamのうち、文字列たcharsetName)//出力バイトストリームのエンコードに必要

メンバーの方法:

公共のボイドの書き込み(INT C)

公共のボイドの書き込み(文字[] CBUF)

公共のボイドの書き込み(文字[] CBUF、オフint型、int型のLEN)

公共のボイドの書き込み(String str)文字

公共のボイドの書き込み(文字列str、オフint型、int型のlen)

文字が問題に注意をストリーム:

フラッシュ()アクション

フラッシュ()およびclose()の間の差

書き込みバッファが一杯になった後、フラッシュ方法は、ストリームを閉じる前に()ストリームのメソッドが閉じているクローズバッファに書き込みデータに使用されるか、または強制することができるまで、データをバッファに格納され、ストリームバッファのデータ出力は一旦バッファ性的な書き込み。二つの結果が同じであるので、フラッシュ()とclose()は、データを書き込むことを余儀なくされて書かれていない場合、あなたは書き込みに成功しないでしょう。

InputStreamReader

コンストラクタ:

公共InputStreamReaderの出力バイトストリームに(のInputStreamで)//必要性

公共InputStreamReaderの(でのInputStream、文字列たcharsetName)//出力バイトストリームのエンコードに必要

メンバーの方法:

公共intは読んで()

公共int型リード(CHAR [] CBUF)

 

バイトストリームと文字ストリームの違い

動作自体は、バッファ(メモリ)に使用されていないバイトストリーム、文書自体との直接操作、及び文字は、バッファにキャラクタの動作フローを使用することで、バイト動作。

操作バイトストリームファイルには、リソースが(closeメソッド)が閉じていない場合でも、ファイルを出力することができるが、近いアプローチを使用して文字列である場合、出力しない任意のコンテンツは、バッファを使用して、文字列を記載し、そして使用することができるではない場合リフレッシュバッファ(すなわち出力バッファの内容を強制)、近い場合せず、次に出力することができるコンテンツを強制的にフラッシュ法

どちらの使用:文字が文字ストリームまたはバイトストリームで、動作している場合。

2 、文字ストリーム

流れを命名することは比較的長く、そして我々の一般的な操作は、当社の書き込み流変換器が対応するサブクラスを提供簡単にするために、そう、ローカルデフォルトエンコーディングに従って実装されます。

書き込みをしてFileWriter

FileReaderを読み取り

FileWriter

コンストラクタ:

FileWriterファイルの  ファイル) 
          Fileオブジェクトを指定してFileWriterオブジェクトを構築します。

FileWriterファイルの  ファイルは、APPENDブール値) 
          Fileオブジェクトを指定してFileWriterオブジェクトを構築します。

FileWriterファイル記述子  FD) 
          FileWriterオブジェクトを構築し、それに関連付けられたファイルディスクリプタ。

FileWriter文字列  filename)は、 
          ファイル名を指定してFileWriterオブジェクトを構築します。

FileWriter文字列  fileNameに、ブールAPPEND)

同じメソッドとのOutputStreamWriterのメンバー

FileReaderの

コンストラクタ:

FileReaderのファイルの  ファイル)は、 
          データの場合は、与えられた中で、ファイルから読み込む新規FileReaderを作成します。

FileReaderののFileDescriptor  FD) 
          のFileDescriptorは新規FileReaderを作成するデータから読み出さ所与の場合です。

FileReaderの文字列  filename)は、 
          データをファイル名から読み取る与え、新規FileReaderを作成します。

同じメソッドとOutputStreamReaderのメンバー

3 、文字ストリームバッファ

BufferedWriterの

BufferedReaderの

特殊機能:

BufferedWriterの

空改行()//改行を書きます

BufferedReaderの

文字列のreadLine()//は、データの1行を読んで

BufferedWriterの

コンストラクタ:

BufferedWriterのライター  OUT)は 
          、出力バッファ、バッファリングされた文字出力ストリームのデフォルトサイズを作成します。

BufferedWriterの、ライター  OUT、int型SZ) 
          指定されたサイズの新しい出力バッファにバッファリングされた出力ストリームを使用してキャラクターを作成します。

メンバーの方法:

空改行()//改行を書きます

BufferedReaderの

コンストラクタ:

BufferedReaderのリーダー  で) 
          入力バッファのバッファリング文字入力ストリームのデフォルトサイズを作成します。

BufferedReaderのリーダー  で、int型SZ)は、 
          文字入力バッファサイズ指定された入力ストリームバッファを作成します。

メンバーの方法:

文字列のreadLine()//は、データの1行を読んで

4 概要:

バイトストリーム

バイトの入力ストリーム入力ストリーム

FileInputStreamを

BufferedInputStreamを

バイト出力ストリームのOutputStream

FileOutputStream

なBufferedOutputStream

文字ストリーム

文字入力ストリームリーダー

InputStreamReaderの(FileReaderの)

BufferedReaderの

文字出力ストリームライター

OutputStreamWriter(てFileWriter)

BufferedWriterの

5 、オブジェクトのシリアライズ

コンセプト

シリアル化:Javaオブジェクトをバイト列に変換する処理。

非直列化:Javaオブジェクトのバイトシーケンスのための回復プロセス。

シリアライズされたオブジェクトは、主に2つの目的があります。

1)通常のファイルに保存されている恒久的にハードディスクに保存されたターゲットバイトシーケンスを、。

ネットワーク上で送信されたバイトの2)標的配列。

ObjectOutputStreamの

オブジェクトのストリーム出力を表す、そののwriteObject(オブジェクトobj)メソッドは、オブジェクトOBJパラメーターをシリアル化することができる、目標出力ストリームに書き込まれたバイトの結果のシーケンスを指定。オブジェクトのみと外部化Serializableのインターフェイスクラスを達成するためにシリアライズされます。

ジャワの概要のObjectOutputStreamは、基本データ型にオブジェクトやグラフをOutputStreamを書きます。ObjectInputStreamのは、(再構成)オブジェクトを読み取ることができます。永続ストレージは、ストリーム内のファイルオブジェクトを使用することによって達成することができます。ストリームがネットワークソケットストリームである、または別のホスト上の他のプロセスに再配置することができる場合。

コードサンプル:

FileOutputStream fosの=新しいのFileOutputStream( "t.tmp");

ObjectOutputStreamのOOS =新しいObjectOutputStreamの(FOS);

oos.writeInt(12345)。

oos.writeObject( "今日");

oos.writeObject(新しいDate());

oos.close();

ObjectInputStreamの

オブジェクト入力ストリームを表し、それのreadObject()メソッドは、それを入力ストリームソースからバイト列を読み出し、それらオブジェクトをデシリアライズし、リターンします。

ObjectInputStreamの基礎データと事前にObjectOutputStreamを使って書かれた直列化復元オブジェクト。

コードサンプル:

FileInputStreamのFIS =新しいFileInputStreamを( "t.tmp");

ObjectInputStreamのOIS =新しいObjectInputStreamの(FIS);

私はois.readIntを()= int型。

文字列の今日=(String)をois.readObject();

日付日付=(日)ois.readObject();

)(ois.close。

おすすめ

転載: www.cnblogs.com/songliuzhan/p/12624144.html