1.IOとは
Java の I/O 操作は、主に Java を入力および出力操作に使用することを指します。すべての Java I/O メカニズムは、入力および出力のデータ ストリームに基づいています。これらのデータ ストリームは、一連の文字またはバイト データを表します。 Java の I/O ストリームは、データの読み取りと書き込みのための標準メソッドを提供します。データ ソースを表す Java のオブジェクトはすべて、データ ストリーム内のデータを読み書きするためのメソッドを提供します。
Java.io は、ほとんどのデータ フロー指向の入出力クラスのメイン パッケージです。さらに、Java はブロック送信のサポートも提供し、ブロック IO はコア ライブラリ java.nio で使用されます。
ストリーム IO の利点はシンプルで使いやすいことですが、欠点は効率が低いことです。ブロック IO は非常に効率的ですが、プログラミングはより複雑です。
Java IO モデル:
Java の IO モデルの設計は非常に優れており、Decorator パターンを使用してストリームを機能ごとに分割し、必要な機能を取得できます。たとえば、バッファリングされたファイル入力ストリームが必要な場合は、FileInputStream と BufferedInputStream を組み合わせて使用する必要があります。
2. データフローの基本概念
データフローは、水道管の水の流れと同じように、水道管の一方の端から少しずつ水が供給され、もう一方の端には連続した流れが見られます。水の。データ書き込みプログラムは、セグメントごとにデータをデータ フロー パイプラインに書き込むことができ、これらのデータ セグメントは順番に長いデータ ストリームを形成します。データ読み取りプログラムの場合、書き込み中のデータ ストリームの分割はわかりませんが、毎回、前のデータのみを読み取ってから、後続のデータを読み取ることができます。データを複数回に分けて書き込んだ場合でも、一度に全体を書き込んだ場合でも、読み取り時の効果はまったく同じです。
「ストリームとは、ディスクまたはその他の周辺機器に保存されているデータの送信元または送信先です。」
コンピュータにデータを保存するには、外部ストレージ、メモリ、キャッシュの 3 つの方法があります。たとえば、コンピュータ上のハードディスク、磁気ディスク、USB フラッシュ ドライブなどはすべて外部記憶装置であり、コンピュータにはメモリ スティックがあり、キャッシュは CPU 内にあります。ストレージ容量が最も大きいのは外部ストレージ、次にメモリ、最後にキャッシュですが、外部ストレージからのデータの読み取りが最も遅く、次にメモリ、キャッシュが最も速くなります。外部メモリからメモリへのデータの読み出し、およびメモリから外部メモリへのデータの書き込みについてまとめました。メモリと外部ストレージを理解するには、単にコンテナとして理解することができます。つまり、外部ストレージはコンテナであり、メモリは別のコンテナです。では、外部ストレージコンテナのデータをメモリコンテナに読み込み、メモリコンテナのデータを外部ストレージに保存するにはどうすればよいでしょうか?
Java クラス ライブラリでは、IO 部分は広範囲のフィールドをカバーするため、非常に大きくなります。
標準の入出力、ファイル操作、ネットワーク上のデータ ストリーム、文字列ストリーム、オブジェクト ストリーム、zip ファイル ストリームなど。Java では、入出力の抽象化をストリームと呼びます。ストリームは 2 つのコンテナを接続する水道管に似ています。外部メモリからメモリへのデータの読み取りは入力ストリームと呼ばれ、メモリから外部メモリへのデータの書き込みは出力ストリームと呼ばれます。
ストリームは非常に鮮明な概念です。プログラムはデータを読み取る必要がある場合、データ ソースへのストリームを開きます。このデータ ソースは、ファイル、メモリ、またはネットワーク接続です。同様に、プログラムがデータを書き込む必要がある場合、宛先へのストリームを開きます。
基本的な概念をまとめると次のとおりです。
開始点と終了点を持つ順序付けられたバイトのシーケンス。入力ストリームと出力ストリームを含みます。
2) 入力ストリーム:プログラムは入力ストリームからデータ ソースを読み取ります。データ ソースには、データ ソースをプログラムに読み込む通信チャネルである外部 (キーボード、ファイル、ネットワークなど) が含まれます。
データ ストリームを使用する目的は、出力と入力をデバイスから独立させることです。
入力ストリームは、データ ソースがどのデバイス (キーボード、ファイル、ネットワーク) からのものかを気にしません。
出力ストリームでは、データの宛先がどのデバイス (キーボード、ファイル、ネットワーク) であるかは関係ありません。
3.標準I/O
Java プログラムは、コマンド ライン パラメーターを通じて外部と簡単な情報を交換できます。同時に、キーボードやモニターなどの標準の入出力デバイスと情報を交換する方法も規定されています。ファイルを通じて、あらゆるデータ形式の情報を外部と交換できます。
1. コマンドラインパラメータ実行結果:
args[0] は <Java> です
args[1] は <C> です
args[2] は <VB> です
Java システムに付属する標準データ ストリーム: java.lang.System:
知らせ:
(1) System クラスはオブジェクトを作成できず、その 3 つの静的メンバーのみを直接使用できます。
(2) mainメソッドが実行されるたびに、上記3つのオブジェクトが自動生成されます。
1) 標準出力ストリーム System.out
System.out はデータを標準出力デバイスに出力し、そのデータ型は PrintStream です。方法:
2)標準入力ストリーム System.in
System.in は標準入力デバイス データを読み取ります(標準入力 (通常はキーボード) からデータを取得します)。そのデータ型は InputStream です。方法:
3)標準エラーストリーム
System.err は標準エラーを出力し、データ型は PrintStream です。詳細な手順については API を参照してください。
標準出力は、System.out を通じて println メソッドを呼び出してパラメータを出力し、改行を折り返すのに対し、print メソッドはパラメータを出力しますが、改行は行いません。 println または print メソッドは、boolean、char、int、long、float、double の出力パラメータ型を含む、オーバーロードを通じて基本データ型を出力する複数のメソッドを実装します。同時に、出力パラメーターの型が char[]、String、Object であるメソッドもオーバーロードされます。このうち、print(Object) メソッドと println(Object) メソッドは、実行時にパラメータ Object の toString メソッドを呼び出します。
パブリック クラス StandardInputOutput {
public static void main(String args[]) {
文字列 ;
// キーボードからデータを 1 行ずつ読み取るためのバッファー リーダーを作成します
InputStreamReader ir = 新しいInputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir);
System.out.println("Unix システム: 終了するには ctrl-d または ctrl-c"
+ "/nWindows システム: ctrl-z 終了");
試す {
//標準で1行のデータを読み込んでモニタに出力
s = in.readLine();
// readLine() メソッドの実行中に I/O エラーが発生した場合、IOException がスローされます。
while (s != null) {
System.out.println("読み取り: " + s);
s = in.readLine();
}
// バッファリングされたリーダーを閉じる
in.close();
} catch (IOException e) { // IO 例外をキャッチします。
e.printStackTrace();
}
}
}
4.java.IO階層アーキテクチャ
Java.io パッケージ全体で最も重要なものは、5 つのクラスとインターフェイスです。 5 つのクラスは File、OutputStream、InputStream、Writer、および Reader を指し、1 つのインターフェイスは Serializable を指します。これらのコア IO 操作をマスターすると、Java の IO システムについて予備的な理解が得られます。
Java I/O には、主に次の 3 つの部分からなるレベルが含まれています。
1. ストリーミング部分 IO の主要部分。
2. 非ストリーミング部分には主に、File クラス、RandomAccessFile クラス、FileDescriptor クラスなど、ストリーミング部分を支援するいくつかのクラスが含まれます。
3. その他のクラス- ファイル読み取り部分のセキュリティ関連クラス (SerializablePermission クラスなど)、およびローカル オペレーティング システムに関連するファイル システム クラス (FileSystem クラス、Win32FileSystem クラス、WinNTFileSystem クラスなど)。
主なクラスは次のとおりです。
1. ファイル (ファイルの特性と管理): 新しいディレクトリの生成、ファイル名の変更、ファイルの削除、ファイル パスの決定など、ファイルまたはディレクトリの説明情報に使用されます。
2. InputStream (バイナリ形式の操作): 抽象クラス、バイトベースの入力操作であり、すべての入力ストリームの親クラスです。すべての入力ストリームが持つ共通の特性を定義します。
3. OutputStream (バイナリ形式の操作): 抽象クラス。バイトベースの出力操作。すべての出力ストリームの親クラスです。すべての出力ストリームが持つ共通の特性を定義します。
Java の文字は Unicode 標準を採用しており、1 文字は 16 ビット、つまり 1 文字は 2 バイトで表されます。この目的を達成するために、JAVA には文字を処理するためのストリームが導入されました。
4. リーダー(ファイル形式操作):抽象クラス、文字ベースの入力操作。
5. Writer (ファイル形式操作): 抽象クラス、文字ベースの出力操作。
6. RandomAccessFile(ランダムファイル操作):機能が豊富で、ファイル内の任意の場所からアクセス(入出力)操作が可能です。
Java の IO ストリームのアーキテクチャは次のとおりです。
5. 非ストリーミング ファイル クラス -- ファイル クラス
}
説明: File クラスのメソッド:
(1)exists()は、指定されたファイルまたはディレクトリがディスク上に存在するかどうかをテストします。
(2) mkdir()はファイルオブジェクトで指定されたディレクトリ(単層ディレクトリ)を作成します
(3) createNewFile()はfileオブジェクトで指定されたファイルを作成します
(4) list() はディレクトリ内のすべてのファイル名文字列を返します。
6. Java.IOストリームクラスライブラリ
java.io パッケージには、ストリーミング I/O に必要なすべてのクラスが含まれています。 java.io パッケージには、InputStream、OutputStream、Reader、および Writer クラスの 4 つの基本クラスがあり、それぞれバイト ストリームと文字ストリームを処理します。
基本的なデータ ストリーム I/O
入出力
バイトストリーム
文字ストリーム
入力ストリーム
入力ストリーム
リーダー
出力ストリーム
出力ストリーム
ライター
Java のストリームの他のさまざまなバリエーションは、これらから派生しています。
JDK1.4 バージョンでは、java.nio パッケージにある新しい I/O クラス ライブラリの導入が開始されました。新しい I/O クラス ライブラリは、チャネルとバッファを使用して I/O 操作の効率を向上させます。
java.io パッケージでは、java.io.InputStream はバイト入力ストリームを表し、java.io.OutputStream はバイト出力ストリームを表します。これは java.io パッケージの最上位にあります。どちらのクラスも抽象クラスです。つまり、インスタンス化できず、特定の機能を実現するにはサブクラス化する必要があります。
1. IO フローの具体的な分類1. I/O タイプによる全体的な分類:
1. メモリ1) メモリ配列へのデータの読み取りおよび書き込み: CharArrayReader、CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream
2) メモリストリング StringReader、StringWriter、StringBufferInputStream との間でデータの読み取りと書き込みを行う
2.Pipe パイプラインはパイプライン入出力 (プロセス間通信) を実装します: PipedReader、PipedWriter、PipedInputStream、PipedOutputStream
3.ファイルファイルストリーム。ファイルの読み取りと書き込み: FileReader、FileWriter、FileInputStream、FileOutputStream
4. ObjectSerialization オブジェクトの入出力: ObjectInputStream、ObjectOutputStream
5. DataConversion データ ストリームは、基本データ型に従って読み取りおよび書き込みを行います (処理されるデータは Java の基本型 (ブール、バイト、整数、浮動小数点数など)): DataInputStream、DataOutputStream
6.印刷には便利な印刷メソッドが含まれています:PrintWriter、PrintStream
7.読み取りまたは書き込み時にデータをバッファリングしてキャッシュし、I/O の数を削減します: BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream
8.フィルタリングフィルタリング ストリーム、データの読み取りまたは書き込み時のフィルタリング: FilterReader、FilterWriter、FilterInputStream、FilterOutputStream パス
9.連結は入力をマージし、複数の入力ストリームを 1 つの入力ストリームに接続します: SequenceInputStream
10.Counting データ読み取り時に行をカウントします: LineNumberReader、LineNumberInputStream
11.Peeking Ahead は、キャッシュ メカニズムを通じて事前読み取りを実行します: PushbackReader、PushbackInputStream
12.バイトと文字の間の変換は、特定のエンコード/デコード標準に従ってバイト ストリームを文字ストリームに変換するか、逆変換を実行します (ストリームからリーダー、ライター変換クラス):InputStreamReader、OutputStreamWriter
2.データソース (宛先) による分類:
1. ファイル: FileInputStream、FileOutputStream、FileReader、FileWriter
2. byte[]: ByteArrayInputStream、ByteArrayOutputStream
3. Char[]: CharArrayReader、CharArrayWriter
4. 文字列: StringBufferInputStream、StringReader、StringWriter
5.ネットワークデータストリーム:InputStream、OutputStream、Reader、Writer
7. バイトストリームInputStream/OutputStream
InputStream はそれ自体が抽象クラスであり、さまざまな関数を実装するためにそのサブクラスに依存する必要があります。この抽象クラスは、バイト入力ストリームを表すすべてのクラスのスーパークラスです。 InputStream から継承したストリームがプログラムにデータを入力します。データ単位はバイト (8 ビット) です。
InputStream はバイト データの入力に使用されるクラスであるため、InputStream クラスには 3 つのオーバーロードされた読み取りメソッドが用意されています。
(1) public abstract int read(): データを 1 バイト読み込み、戻り値は上位ビットが 0 で埋められた int 型の値になります。戻り値 = -1 の場合は、バイトが読み取られておらず、読み取り作業が終了したことを意味します。
(2) public int read(byte b[ ]): b.length バイトのデータを読み取り、それを b 配列に入れます。戻り値は読み取られたバイト数です。このメソッドは、実際には次のメソッドを呼び出すことによって実装されます。 (3) public int read(byte b[ ], int off, int len): 入力ストリームから最大 len バイトのデータを読み取り、それを off のオフセットに格納します。 b配列。
(4) public int available(): 入力ストリームで読み取れるバイト数を返します。注: 入力がブロックされている場合、現在のスレッドは一時停止されます。InputStream オブジェクトがこのメソッドを呼び出しても、0 のみが返されます。このメソッドを使用するには、InputStream クラスを継承するサブクラス オブジェクトによって呼び出す必要があります。
(5) public long stop(long n): 入力ストリームの n バイトを無視します。戻り値は実際に無視されたバイト数です。一部のバイトをスキップして読み取ります。 (6) public int close(): 使用後、開いたストリームは閉じる必要があります。
主なサブカテゴリ:
1) FileInputStream: ファイルを InputStream として使用して、ファイルの読み取り操作を実現します。 2) ByteArrayInputStream: メモリ上のバッファを InputStream として使用します。 3) StringBufferInputStream: String オブジェクトを InputStream として使用します。
4) PipedInputStream: 主にスレッドで使用されるパイプの概念を実装します。 5) SequenceInputStream: 複数のInputStreamを1つのInputStreamにマージします。
主なサブカテゴリ:
1) ByteArrayOutputStream: 情報をメモリ内のバッファに保存します
2) FileOutputStream: 情報をファイルに保存します
3) PipedOutputStream: 主にスレッドで使用されるパイプの概念を実装します。
4) SequenceOutputStream: 複数の OutStream を 1 つの OutStream にマージします
ストリームの終了の判定:read()メソッドの戻り値が-1の場合、readLine()の戻り値がnullの場合。
3. ファイル入力ストリーム: FileInputStream クラスFileInputStream は、read() メソッドを使用して一度に 1 バイトを読み取り、それを int 型として返すことも、read() メソッドを使用してバイト配列に読み取ることもできます。バイト配列。ファイル全体の読み取りまたは書き込みのプロセスでは、このようなバイト配列は通常、データを受信する際の中間的な役割を果たすため、バッファーとして使用されます。
使い方(2)
FileInputStream in=newFileInputStream(“d: /abc.txt”);
プログラム例:
InputFromFile.javaプログラムの内容をモニターに表示します。
パブリック クラス TestFile {
public static void main(String args[]) throws IOException {
試す{
FileInputStream rf=new FileInputStream("InputFromFile.java");
int n=512; バイトバッファ[]=新しいバイト[n];
while((rf.read(buffer,0,n)!=-1)&&(n>0)){
System.out.println(new String(buffer) );
}
System.out.println();
rf.close();
catch(IOException IOe){
System.out.println(IOe.toString());
}
}
}
FileOutputStream クラスは、ファイルをデータ出力先として使用するデータ ストリームを処理するために使用されます。ファイル名を表す文字列は、File または FileDescriptor オブジェクトにすることもできます。
ファイル ストリーム オブジェクトを作成するには 2 つの方法があります。
方法 1:
File f=new File ("d:/myjava/write.txt ");
FileOutputStream out= 新しい FileOutputStream (f);
方法 2:
FileOutputStream out=new FileOutputStream("d:/myjava/write.txt ");
方法 3: コンストラクターは、FileDescriptor() オブジェクトをパラメーターとして受け取ります。
FileDescriptor() fd=new FileDescriptor();
FileOutputStream f2=新しい FileOutputStream(fd);
方法 4: コンストラクターは、最初のパラメーターとしてファイル名を受け取り、2 番目のパラメーターとしてブール値を受け取ります。
FileOutputStream f=new FileOutputStream("d:/abc.txt",true);
注: (1) ファイルにデータを書き込むとき、そのファイルがすでに存在する場合、既存のファイルは上書きされます。(2) 読み取り/書き込み操作が終了したら、close メソッドを呼び出してストリームを閉じる必要があります。
}
パブリック クラス TestFile {
public static void main(String args[]) throws IOException {
試す {
ファイル inFile = new File("copy.java");
ファイル outFile = new File("copy2.java");
FileInputStream finS = 新しい FileInputStream(inFile);
FileOutputStream foutS = 新しい FileOutputStream(outFile);
int c;
while ((c = finS.read()) != -1) {
foutS.write(c);
}
finS.close();
foutS.close();
} キャッチ (IOException e) {
System.err.println("FileStreamsTest: " + e);
}
}
}
コンピュータから外部デバイスへのアクセスには時間がかかります。外部メモリへのアクセス頻度が高くなると、CPU がアイドル状態になる可能性が高くなります。外部メモリへのアクセス回数を減らすには、ペリフェラルへの 1 回のアクセスでより多くのデータを読み書きする必要があります。この目的を達成するには、プログラムとフロー ノード間のデータ交換に必要な読み取りおよび書き込みメカニズムに加えて、バッファリング メカニズムも追加する必要があります。バッファリングされたストリームとは、各データ ストリームにバッファが割り当てられることを意味し、バッファはデータを一時的に保存するメモリです。これにより、ハードディスクへのアクセス回数が削減され、伝送効率が向上します。
BufferedInputStream: バッファリングされたストリームにデータを書き込む場合、バッファがいっぱいになった後、システムはデータを出力デバイスにすぐに送信します。
BufferedOutputStream: バッファリングされたストリームからデータを読み取るとき、システムは最初にバッファからデータを読み取り、バッファが空の場合、次に入力デバイスからバッファにデータを読み取ります。
BufferedInputStream を FileInputStream に接続する
FileInputStreamin=newFileInputStream( "file1.txt " );
BufferedInputStreambin=newBufferedInputStream(in);
2) メモリをファイルに書き込みます。
BufferedOutputStream を FileOutputStream に接続する
FileOutputStreamout=newFileOutputStream(“file1.txt”);
BufferedOutputStreambin=newBufferedInputStream(out);
パブリック クラス ReadWriteToFile {
public static void main(String args[]) throws IOException {
InputStreamReader sin = 新しいInputStreamReader(System.in);
BufferedReader bin = new BufferedReader(sin);
FileWriter out = new FileWriter("myfile.txt");
BufferedWriter bout = new BufferedWriter(out);
文字列 ;
while ((s = bin.readLine()).length() > 0) {
bout.write(s, 0, s.length());
}
}
}
8. 文字ストリーム ライター/リーダー
Java の文字は Unicode 標準を採用しており、1 文字は 16 ビット、つまり 1 文字は 2 バイトで表されます。この目的を達成するために、JAVA には文字を処理するためのストリームが導入されました。
文字ストリームを読み取るための抽象クラス。サブクラスが実装する必要があるメソッドは、read(char[], int, int) と close() だけです。ただし、ほとんどのサブクラスは、効率の向上や追加の機能を提供するために、ここで定義されたメソッドの一部をオーバーライドします。
1) FileReader: FileInputStream に対応し、主にデフォルトの文字エンコーディングを使用して文字ファイルを読み取るために使用され、次の 3 つのコンストラクターがあります。
(1) ファイル名を文字列として使用します。 FileReader f=new FileReader(“c:/temp.txt”);
(2) コンストラクターは、パラメーターとして File オブジェクトを受け取ります。
ファイル f=新しいファイル(“c:/temp.txt”);
FileReader f1=新しい FileReader(f);
(3) コンストラクターは FileDescriptor オブジェクトをパラメーターとして受け取ります
FileDescriptor() fd=new FileDescriptor()
FileReader f2=新しい FileReader(fd);
(1) 指定された文字配列をパラメータとして使用します: CharArrayReader(char[])
(2) 文字配列を入力ストリームとして使用: CharArrayReader(char[], int, int)
文字列を読み取るためのコンストラクターは次のとおりです。 public StringReader(String s);
2) CharArrayReader: ByteArrayInputStream に対応
3) StringReader: StringBufferInputStream に対応
4) 入力ストリームリーダー
入力ストリームからバイトを読み取り、文字に変換します。 Public inputstreamReader(inputstream is);
5) FilterReader: 文字ストリームのフィルタリングを可能にします
protected filterReader(Reader r);
6) BufferReader: Reader オブジェクトをパラメータとして受け取り、readline() メソッドを使用して文字バッファを追加します。
パブリック BufferReader(リーダー r);
主な方法:
(1) publicintread()throwsIOException;//文字を読み込み、戻り値は読み取った文字
(2) publicintread(charcbuf[])throwsIOException;/*一連の文字を配列 cbuf[] に読み込み、戻り値は実際に読み取られた文字数*/
(3) publicabstractintread(charcbuf[],intoff,intlen)throwsIOException;
/*len 文字を読み取り、配列 cbuf[] の添字から開始して格納します。戻り値は、実際に読み取られた文字数です。このメソッドはサブクラスによって実装される必要があります*/。
文字ストリームに書き込むための抽象クラス。サブクラスが実装する必要があるメソッドは、write(char[], int, int)、flush()、および close() だけです。ただし、ほとんどのサブクラスは、効率の向上や追加の機能を提供するために、ここで定義されたメソッドの一部をオーバーライドします。 そのサブカテゴリは次のとおりです。
1) FileWrite: FileOutputStream に対応し、デフォルトの文字エンコーディングとバッファ サイズを使用して文字型データをファイルに書き込みます。
Public FileWrite(ファイル f);
2) chararrayWrite: ByteArrayOutputStream に対応し、文字バッファを出力として使用します。
パブリック CharArrayWrite();
3) PrintWrite: フォーマットされた出力を生成します。 public PrintWriter(outputstream os);
4) filterWriter: フィルター文字ストリームの書き込みに使用され、保護された FilterWriter(Writer w);
5) PipedWriter: PipedOutputStream に対応
6) StringWriter: 対応するバイト指向のストリームがありません
主な方法:
(1) publicvoidwrite(intc)throwsIOException; //整数値 c の下位 16 ビットを出力ストリームに書き込みます (2) publicvoidwrite(charcbuf[])throwsIOException; //文字配列 cbuf[] を出力ストリームに書き込みます ( 3) publicabstractvoidwrite(charcbuf[],intoff,intlen) throwsIOException; //文字配列 cbuf[] のインデックスから始まる len 文字を出力ストリームに書き込みます (4) publicvoidwrite(Stringstr)throwsIOException; //文字配列を書き込みます。 string str が出力ストリームに書き込まれます (5) publicvoidwrite(Stringstr,intoff,intlen)throwsIOException //string str のインデックス off から始まる len 文字を出力ストリームに書き込みます (6) flash() / /出力ストリームをフラッシュし、バッファされたすべてのバイトを出力します。
(7)close()はストリームを閉じます publicabstractvoidclose()throwsIOException
3.InputStreamとReaderの違い、OutputStreamとWriterの違い
public static void main(String args[]) throws IOException {
System.out.println("メモリ内では Unicode 文字エンコーディングが使用されています: ");
char c='良い';
int lowBit=c&0xFF; int highBit=(c&0xFF00)>>8;
System.out.println(""+lowBit+" "+highBit);
文字列 s="OK";
System.out.println("ローカル オペレーティング システムのデフォルトの文字エンコーディング:");
readBuff(s.getBytes());
System.out.println("GBK 文字エンコーディングの使用:");
readBuff(s.getBytes("GBK"));
System.out.println("UTF-8 文字エンコーディング:");
readBuff(s.getBytes("UTF-8"));
}
9. IOException例外クラスのサブクラス
1.パブリッククラスEOFException:
このタイプの例外は、ファイルの終わりまたは入力ストリームの終わりに異常に到達した場合にスローされます。
2.パブリック クラス FileNotFoundException:
ファイルが見つからない場合にスローされる例外。
3.パブリッククラスInterruptedIOException:
このタイプの例外は、I/O操作が中断されるとスローされます。