ファイル入力および出力ストリーム
ファイル入力および出力Stream FileInputStreamおよびFileOutputStreamは、ローカルディスクファイルのシーケンシャル入力操作と出力操作を完了する責任があります。
[例]プログラムを介してファイルを作成し、キーボードから文字を入力し、文字「#」が遭遇し、ファイルのすべての内容が画面に表示されるときに終了します
Java.io new fileoutputStream( "ep10_5"); '#'){ch); b.close(); (filedeScriptor.out); ){system.out.println( "このファイルは見つかりません!");
FileDeScriptorは、java.ioのクラスです標準入力。出力ストリームにファイル入力と出力ストリームを作成して、キーボード入力または画面出力操作を実現します。
[例]バイナリグラフィックファイル(.gifs)のバックアップを実装する
Java.io。*;クラスEP10_6 {public static void main(string args [])throws {fileinputStream a = new fileinputStream( "ep10_6.gif"); system.out.println( "+a.abailable()); Array B.Write(c); ;
フィルターフロー
FilterInputStreamとFileOutputStreamは、入力ストリームと出力ストリームの直接的なサブクラスです。
一般的に使用される2つのフィルタリングストリームは、データ入力ストリームDatainputStreamとデータ出力Stream DataOutputStreamです。その構築方法は次のとおりです。
datainputStream(InputStream in);新しい入力ストリームを作成します。
DatainputStreamおよびdataoutputStreamは、DatainputおよびDataUtputインターフェイスで定義されたフォーマットされた読み取り操作を実装するため(2つのインターフェイスは基本型データの入力および出力メソッドを指定します)、フォーマットされた読み取りおよび書き込み操作は、さまざまな種類のデータ読み取りと書き込みに対して実現されます。構造方法から、入力ストリームと出力ストリームは、それぞれデータ入力ストリームと出力ストリームの構造方法パラメーターとして使用されていること、つまり、フィルタリングされたストリームとして、対応するデータストリームに接続する必要があることがわかります。
DatainputStreamおよびDataOutputStreamクラスは、さまざまなタイプのデータに対して多くの読み取りおよび書き込み方法を提供します。
[例]データファイルEP10_6.DATに3つのINTタイプ番号100、0、および-100を記述します。
Java.io。*;クラスEP10_7 {String args []){ep10_7.dat "; value2 = 0、value3 = -1 00; DataUtputStreamは、さまざまなタイプのデータを出力します。 } catch(ioexception i){system.out.println( "エラーが発生!"+filename)}}}
実行後、データファイルEP10_7.DATをプログラムディレクトリで生成します。コンテンツはバイナリであることがわかります。
00 00 00 64 00 00 00 00 ff ff ff 9c。
[例]データファイルEP10_6.DAT、合計、および表示の3つのINTタイプ番号を読み取ります。
Import java.io。*; class ep10_8 {public static void main(string args []){d://myjava/ep10_7.dat "; new BufferedinputStream(fileName)); + sum); a.close();
実行結果:
3つの数値の合計は:0です
readintメソッドは、入力ストリームと出力ストリームから4バイトを読み取り、INTタイプのデータとして操作に直接参加できます。ファイルに3つのデータがあることをすでに知っているので、3つの読み取りステートメントを使用できますが、ファイルにINTタイプのデータがあることを知っているが、データの数がわからないことがわかっている場合はどうすればよいですか? DatainputStreamの再入力操作が発生した場合、Eofexceptionがファイルの最後にスローされるため、読み取り操作を試してみることができます。
try {while(true)sum+= a.readint();} catch(eofexception e){out.pritnln( "3つの数字の合計は:"+sum);
Eofexceptionは、IOExceptionのサブクラスです。ただし、ファイルが終了した場合にのみキャッチされます。
[例]キーボードから整数を入力し、数字の数字の合計を見つけます。
Java.IO b = a.readint(); while(c> 0) sum = sum+d;
実行結果:
整数を入力してください:26842403082桁の合計= 31
入力データ26は842403082になっています。その理由は、入力データは、キーボードから提供されるデータの形式に準拠していないことです、それは2と6のみを表します。2文字のバイトデータは、整数26を表すバイトコードではありません。
キーボードから整数を取得するには、最初に文字列を読み取り、次に他の方法を使用して文字列を整数に変換する必要があります。
標準入力と出力
System.in、System.out、およびSystem.errは、Javaソースプログラムがコンパイルされると、java.lang.Systemパッケージで定義されます。
標準入力:標準入力システムは、プログラムがキーボードからデータを読み取る必要がある場合、キーボードバッファーのバイトを読み取るSystem.inのみを呼び出す必要がある場合にのみ必要です。 。
標準出力:標準出力System.outは、PrintStreamクラスPrintStreamのオブジェクトです。 PrintStreamクラスは、フィルタリングされた出力ストリームクラスFilterOutputStreamのサブクラスであり、さまざまなタイプのデータを画面に出力するMethod()およびprintln()を定義します。
標準エラー出力:System.Errは、ユーザーにエラーメッセージを表示するために使用され、PrintStreamクラスから派生したエラーストリームでもあります。 ERRストリームの機能は、Print()とprintln()出力情報をERRストリームに作成し、プログラムを使用およびデバッグするためにユーザーが便利にするために画面に表示することです。
[例]それを表示するために一連の文字列を入力し、system.in and system.outに属するクラスを表示します。
Java.io。*;クラスEP10_10 {public static void main(string args []){byte a [] = new byte [128];文字列: "); int count = system.in.Read(a); //標準入力および出力ストリームSystem.out.println(" input is: "); for(int i = 0; i <count; i ++)System.out.print(a [i]+""); //リターンとラインブレークはsystem.out.print((char)+"");番号は "+count); class intrass = system.in.getClass(); class outclass = system.out.getClass(); system.out.println("アイテムがあるクラス: "+intrass.t ostring()); system.out.println( "out out is:"+outclass.tostring();} catch(ioexception e){}}}
実行の結果は次のとおりです。
3文字を入力してEnterを押した後、出力結果が5文字として表示されることに注意してください。これは、キャリッジリターンがJavaの2つのキャラクターとして扱われ、1つはASCⅱ13のキャリッジリターンであり、もう1つは値が10のラインブレークであるためです。プログラムでは、getClass()とtoString()はオブジェクトクラスのメソッドであり、対応するクラスを現在のオブジェクトに戻し、現在のオブジェクトの文字列表現を返すためにそれぞれ使用されます。