IO Javaの基礎 -

IOは何ですか?
IO:(入力/出力):入力と出力。
IOデバイス:コンピュータや通信機器
入力デバイス:などマイク、スキャナ、キーボード、マウス、
出力機器:モニタ、プリンタ、プロジェクタ、ヘッドフォン、オーディオ。

プログラムは、IOを必要とする理由第二に、それは?
IO操作は、一般的に、我々は(メモリプログラム)についての思考のプログラムを持って、相対的なプロセスである。
プログラムがデータを必要とします。プログラムへの入力データを、入力
データを格納するために、その必要性、他人へのデータ転送:出力。

三.IOイラスト:
ここに画像を挿入説明
ここに画像を挿入説明

操作テンプレート分類.IO 4つのストリーム:
:分類IOストリーム、異なる視点、分類が同じドロップない
)1:フローが分割されている:入力と出力ストリーム
2):データ分割部:バイトストリームと文字のストリーム。
3):パッケージングノードとストリームフロー:機能の分割。

四つの基本フロー:( バイトの出力ストリーム、バイト入力ストリーム、文字の出力ストリーム、文字入力ストリーム
4つのストリームの抽象基底クラスです。他のストリームは、4つの基本の流れから継承されている
、我々は4を作成することができませんオブジェクトのみのサブクラスを作成することができ、大きな基本フローを、オブジェクト。
どのような流れがある近くのリソースを閉じるために使用される方法。
操作ファイル、あなたは近いリソースいない場合我々は、ディスク・ファイルが関連付けられているストリームオブジェクトをオープンする必要がある場合は、削除することはできませんし、ディスクのファイルはプログラムによって参照されている、それを変更することはできません。
ここに画像を挿入説明
IOの家族制度:
ここに画像を挿入説明
ここに画像を挿入説明
IOストリームステンシル操作:
1):ソースまたはターゲットオブジェクト(掘り井戸)を作成します。
ファイルストリームの例を取る:
次のように入力します。プログラムファイルへのデータの流れ、ファイルは、ソース、ターゲットプログラムである。
出力動作:ファイルへのプログラムのデータの流れ、ファイルがターゲットである、プログラムソース。
2):(IOストリーム・オブジェクトを作成します水)。
入力:入力ストリームオブジェクトを作成する。
出力:出力ストリーム・オブジェクトを作成する。
3):特定のIO操作
入力操作:入力ストリームオブジェクト読み出し方式
出力動作:.出力ストリームオブジェクトの書き込み方法
4):閉じるリソース(忘れないでください)。リソースを閉じると、あなたが使用することはできません オブジェクト、そうでない場合はエラー。
入力操作:入力ストリームオブジェクト.close();
出力操作:出力ストリームオブジェクト.close()。

Liuzizhenyan操作IOストリーム:
書き出す、読ま
これから時間:強調是非入力され、命令は方法を読んでいるお読みください。
書き出し:出力され、書き込み書き込み方法が説明されていて強調しました。

V.プレゼンテーションストリーム
バイトの出力ストリーム(1)ファイル
ここに画像を挿入説明
(2)出力バイトストリームファイルの
ここに画像を挿入説明
バイトファイルのコピー操作の(3)の使用は、フロー終了し
ここに画像を挿入説明
、自動的に閉じるようJava7によって提供されるリソースを(4)
ここに画像を挿入説明
(5 )文字出力ストリームファイルの
ここに画像を挿入説明
概念バッファリング:
フラッシュ(リフレッシュ)動作では、出力ストリームflushメソッドです:
外部デバイス(ディスクファイル)へのコンピュータアクセス、ダイレクト・メモリ・アクセスは、それぞれの書き込みに直接書き込む必要がある場合よりもはるかに遅いですディスクファイルに、より多くの時間を過ごすことになりますCPUは、その後、我々はメモリバッファ、プログラムの書き込み方法は、メモリバッファに直接書き込まれる毎に、メモリバッファがいっぱいになったときに準備することができ、システムは、バッファディスクファイルへの1回の書き込みの内容。
バッファを使用する利点:
1:増加のCPU使用率。
2:書き込まれたデータをロールバックするチャンス
バイトストリームのためには、flushメソッドは、すべての役割(バイトストリームの一部だけではありません文字のストリームのためのバッファストリーム)の役割が働いている。
私たちはcloseメソッドを呼び出すと、システムリソースが終了する前に、最初のflushメソッドを呼び出します。
オペレーティング・システムは、終了タグの-1ディスク・ファイルを示しますを使用しています。
一般的に使用容量バッファサイズ整数複数のIO性能を向上させることができます。

ここに画像を挿入説明
(6)フローおよびバッファ概要フロー包装
モードパッキングプロセスフロー/パケット・ストリーム(上位ノードの流れに対して)装飾的なデザインパターン/:
1:皮ノードストリームの根底にある違い、外部より便利入力/出力を提供します機能は、私たちは、操作アドバンスドストリーム気こと。
2:プロセスフロー・パッケージノードストリームを、処理フローで直接動作するように、基礎となるデバイスノードからの流れは、IO操作を行うように。
3:処理の流れでき単に近い
包装ストリームどのように区別するために:ライト・コードとあなたは別のストリームオブジェクトを渡す必要があるとき、オブジェクトを作成するオブジェクトを見つけました。
新しい新しいパッケージストリーム(ストリームオブジェクト);

バッファされたストリームは何か:
。梱包の流れ、バッファとして動作することを目的
にBufferedInputStream:
なBufferedOutputStream:
BufferedReaderの:
BufferedWriterの:

オブジェクトストリームバッファ:
動作フロー、バイト/ char配列を定義するために使用される。
のIntリード():バイトはディスクファイルからディスクファイルを読み込まれるたびに、非常に低い直接動作性能である。
対処:アレイを定義しますバッファとしての
バイト[]バッファ=新しいバイト[ 1024] ;. バッファアレイは、実際には
、ワンタイムは非常に、操作少ないディスク・ファイルの数、--- 1024年以来、バイト単位で、ディスクファイルから読み取ります。 - >性能を向上させることができる。
SUN会社は長いデフォルトのバッファサイズを提供する考えは8192(* 8 1024)でてきた、私たちが考えることができるので、我々は一般的にサイズを変更しないでください。
ここに画像を挿入説明
ここに画像を挿入説明
(7)文字バッファの流れ
ここに画像を挿入説明
(8)の転流メモリストリームと
ストリーム変換:バイトストリームに文字ストリーム:
文字入力ストリームにバイト入力フロー:InputStreamReaderのを
文字の出力ストリームにバイトの出力ストリーム:のOutputStreamWriter。

なぜターンバイト文字列、文字なしの転送バイトストリーム。
バイトストリームは、すべてのファイル(テキストファイル/バイナリファイル)を操作することができます。
文字ストリームは中国の使用を動作させるために使用されているプレーンテキスト自体は、バイトのストリームであります強化。

メモリストリーム(ストリーム・アレイ):アダプタモード:(知識を広げる)
最初の中間データアレイ、アレイから再取得されるであろう存在する。
1):バイトメモリストリーム:れるByteArrayInputStream / ByteArrayOutputStream
2):文字メモリストリーム: / CharArrayWriterからCharArrayReader
。3):文字列ストリーム:にStringReader /にStringWriter(データは一時的に)文字列に格納されます。

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
(9)混合流
合成ストリーム/シーケンスフロー(たSequenceInputStream):
複数の入力を組み合わせ、ストリームオブジェクトにストリームです。
ここに画像を挿入説明

(10)印刷ストリーム
:印刷ストリーム、印刷データは、印刷ストリームのみを出力ストリームで
のPrintStreamは:バイトストリーム印刷
のPrintWriter:文字印刷ストリームは
-のPrintWriterがあるため、リフレッシュフィールドを有効にするには、

またはprintlnのprintf関数を呼び出す、またはformatメソッド意志すぐにリフレッシュ操作。
あなたは、自動更新をオンにしない場合は、手動で更新したり、バッファが、その後いっぱい、そしてあるときに自動的に更新する必要があります。
出力ストリームとして出力ストリームを使用し、その後、出力動作は特になります:印刷ストリーム以来、シンプル、
印刷を提供する:印刷ラップはない
のprintln提供:する印刷ラインの裏を
印刷し、印刷する方法のprintlnサポートは/さまざまなデータ型を出力し、空のprintln(オブジェクトX)を覚えておきます。ここに画像を挿入説明
ここに画像を挿入説明
(11)を、標準的なIOの概要及び
標準IO:
標準入力:プログラムへのキーボード入力データ
標準出力:画面表示プログラムに関するデータ。

Systemクラスには、2つの定数があります
= System.inでのInputStreamを;
のPrintStreamのSystem.out = OUT。

:ストリームの標準操作リダイレクト
標準入力:プログラムにキーボード入力データを
。ソースはキーボード入力はもはやありませんが、ファイル再割り当て
(のInputStreamで)静的な無効SETINは「標準」入力ストリームを再配布します。
その後、ソースSystem.inデータはSETINソースで開発されていない
標準出力を:画面上のプログラムデータを表示する。
ゴールではなく、ファイルの、出力画面を再割り当てすることはもはやです。
スタティックがvoid setOut(PrintStreamをOUT)の再割り当て「標準」出力ストリーム。

ここに画像を挿入説明

ここに画像を挿入説明
(12)データストリーム
、データストリーム、読み出し/書き込み方法の任意のデータタイプ:
DataOutputStreamを:提供writeXxx(XXX値)方法
DataInputStreamの:.提供readXXX()メソッド
注writeXxxとreadXXXが対応である必要があり、 readByteを使用してのwriteByte書き込みデータ、これだけ時間がリードバック。
ここに画像を挿入説明
(13)パイプラインの流れ
フローダクト:二つのスレッド間のデータの相互作用を実現し
持つPipedInputStream
持つPipedOutputStream
PipedReder
PipedWriter

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明
六.NIO
NIO:新IO:
始まるJDK1.4からは、新たなIOは、メモリにディスクファイルをマップすることができ、我々はメモリ内のデータを読み取ることが提案されている。
java.nioのパッケージに格納されている。
JavaのNIO (新しいIO)IO APIが導入の最初から新しいJava 1.4バージョンでは、標準のJava IO APIを置き換えることができ
、伝統的なIOを使用して、我々はまだ書き込みコードが十分であるために、今、サーバー用に主に使用されている。
JDK1.7に更新IO、NIO2.0 .->ファイル(ファイルツール)を抽出。

ここに画像を挿入説明
七.IOフローの概要
ここに画像を挿入説明

公開された99元の記事 ウォンの賞賛2 ビュー2595

おすすめ

転載: blog.csdn.net/weixin_41588751/article/details/105316414