IOストリームの基本概念
IOストリームは、デバイス間のデータ送信を処理するために使用されます
Javaは、ストリームを介してデータを操作します
Javaがストリームを動作させるために使用するオブジェクトは、IOパケットの2種類のストリームに分割されます。バイトストリームと文字ストリーム:入力ストリームと出力ストリーム。
バイトストリームの要約ベースクラス:inputstream、outputStream
キャラクターストリームの抽象的なベースクラス:リーダー、ライター
注:これらの4つのクラスから派生したサブクラス名はすべて、親クラス名のサブクラス名のサフィックスです。
例:inputstreamのサブクラス:FileInputStream
たとえば、Reader FileReaderのサブクラス
FileWriterオブジェクトを作成すると、オブジェクトが初期化されると、操作するファイルを明確に定義する必要があり、ファイルが指定されたディレクトリに作成されます。ディレクトリに同じ名前のファイルがある場合、上書きされます。
デモ:
パッケージjavase.day18; java.io.filewriterをインポートします。 java.io.ioexceptionをインポートします。 public class filewriterdemo {public static void main(string [] args){filewriter fw = null; try {fw = new filewriter( "c://java_test//filewritertest.txt"); //書き込みメソッドを呼び出し、ストリームに文字列を書き込みfw.write( "alex test23"); // Stream Objectのバッファ内のデータを新鮮fw.flush(); } catch(ioexception e){e.printstacktrace(); }最後に{try {if(fw!= null){//ストリームリソースを閉じますが、fw.close()を閉じる前に内部バッファーは1回更新されます。 }}} catch(ioexception e){e.printstacktrace(); }}}}パッケージjavase.day18; java.io.filewriterをインポートします。 java.io.ioexceptionをインポートします。 public class filewriterdemo {public static void main(string [] args){filewriter fw = null; try {fw = new filewriter( "c://java_test//filewritertest.txt"); // writeメソッドを呼び出して、ストリームに文字列を書き込みますfw.write( "alex test23"); // Stream Objectのバッファ内のデータを新鮮fw.flush(); } catch(ioexception e){e.printstacktrace(); }最後に{try {if(fw!= null){//ストリームリソースを閉じますが、内部バッファのデータはfw.close()を閉じる前に1回更新されます。 }}} catch(ioexception e){e.printstacktrace(); }}}}Javaファイルデモコードのソースコードを印刷します。
パッケージjavase.day18; java.io.filereaderをインポートします。 java.io.ioexceptionをインポートします。 public class fileReadertest {public static void main(string [] args){try {filereader fr = new fileReader( "c://java_test//systemdemo.java"); char [] buf = new char [1024]; int num = 0; while((num = fr.read(buf))!= -1){system.out.println(new String(buf、0、num)); }} catch(ioexception e){e.printstacktrace(); }}}パッケージJavase.day18; java.io.filereaderをインポートします。 java.io.ioexceptionをインポートします。 public class fileReadertest {public static void main(string [] args){try {filereader fr = new fileReader( "c://java_test//systemdemo.java"); char [] buf = new char [1024]; int num = 0; while((num = fr.read(buf))!= -1){system.out.println(new String(buf、0、num)); }} catch(ioexception e){e.printstacktrace(); }}}ファイルのデモコードをコピーします。
copy_1()に使用される方法は、文字を読み取り、文字を書くことです。
Copy_2()で使用される方法は、文字を一度に文字配列に読み取り、最後にターゲットファイルに再度書き込むことです。
パッケージjavase.day18; java.io.filereaderをインポートします。 java.io.filewriterをインポートします。 java.io.ioexceptionをインポートします。 public class copytext {public static void main(string [] args){try {copy_1(); } catch(ioexception e){e.printstacktrace(); }} public static void copy_1()throws ioexception {filewriter fw = new filewriter( "c://java_test//copy_systemdemo.java"); filreader fr = new fileReader( "c://java_test//systemdemo.java"); int num = 0; while((num = fr.read())!= -1){fw.write(num); } fw.close(); fr.close(); } public static void copy_2()throws ioexception {filewriter fw = new filewriter( "c://java_test//copy_systemdemo.java"); filreader fr = new fileReader( "c://java_test//systemdemo.java"); int num = 0; char [] buf = new char [1024]; while((num = fr.read(buf))!= -1){fw.write(buf、0、num); } fw.close(); fr.close(); }} package javase.day18; java.io.filereaderをインポートします。 java.io.filewriterをインポートします。 java.io.ioexceptionをインポートします。 public class copytext {public static void main(string [] args){try {copy_1(); } catch(ioexception e){e.printstacktrace(); }} public static void copy_1()throws ioexception {filewriter fw = new filewriter( "c://java_test//copy_systemdemo.java"); filreader fr = new fileReader( "c://java_test//systemdemo.java"); int num = 0; while((num = fr.read())!= -1){fw.write(num); } fw.close(); fr.close(); } public static void copy_2()throws ioexception {filewriter fw = new filewriter( "c://java_test//copy_systemdemo.java"); filreader fr = new fileReader( "c://java_test//systemdemo.java"); int num = 0; char [] buf = new char [1024]; while((num = fr.read(buf))!= -1){fw.write(buf、0、num); } fw.close(); fr.close(); }}文字ストリームのバッファー:
バッファーの出現により、データの読み取り効率が向上します。
対応するクラス:BufferedWriter、BufferedReader。
バッファーを使用する前に、バッファーと組み合わせる必要があります。
流れの関数は、流れに基づいて強化されます。
IOストリーム操作の基本ルール:
1。ソースと目的をクリアします。
出典:入力ストリーム、リーダー
目的:OutputStream、ライター
2。操作のデータが平易なテキストであるかどうか:
はい:文字ストリーム番号:バイトストリームは:(1)入力文字ストリームにリーダーを使用する場合
(2)入力バイトストリームにinputstreamを使用します
(3)出力文字ストリームにライターを使用します
(4)出力バイトストリームに出力ストリームを使用する場合
3.システムが明確な場合は、使用する特定のオブジェクトを明確にします。
ソースデバイス:メモリ、ハードディスク、キーボード宛先デバイス:メモリ、ハードディスク、コンソール
IO操作ツールクラス
[1] String filereaderstringhandle(string filename)
ファイル(ファイル名で指定)を文字列に読み取ります。
[2] byte [] filereaderbytehandle(string filename)
ファイル(ファイル名で指定)をバイト配列に読み取ります。
[3] void filewriterhandle(string filename、string text)
ファイル(ファイル名で指定)に文字列(テキストで指定)を書き込みます。
ioutil.java
java.io.bufferedinputStream;インポートjava.io.bufferedreader; Import java.io.file; Import java.io.fileinputStream; Import java.io.filereader; Import java.io.ioexception; import java.io.io.printilit fileReader+bufferedReader(ReadLineメソッドの提供) * * @Param Filename * @return String */ public Static String filereaderstringhandle(string filename){stringbuilder sb = new StringBuilder(); try {bufferedReader in = new BufferedReader(new FileReader(new File(Filename).GetAbSoluteFile())); {string s; while((s = in.readline())!= null){sb.append(s); sb.append( "/n"); }}最後に{in.close(); }} catch(ioException e){new new runtimeexception(e); } return sb.toString(); } / ** * fileinputStream+bufferedInputStreamを使用して、ファイルをバイトで処理する * * @param filename * @return byte [] * / public static byte [] filereaderbytehandle(string filename){byte [] data = null; try {bufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename)); try {data = new byte [bf.abailable()]; bf.read(data); }最後に{bf.close(); }} catch(ioException e){new new runtimeexception(e); }データ== null? new byte [] {}:data; } / ** *指定されたテキストをfilename * * @param filename * @param text * / public static void filewriterhandle(string filename、string text){try {printwriter out = new Printwriter(filename(filename).getabsolutefile()); {out.print(text); }最後に{out.close(); }} catch(ioException e){new new runtimeexception(e); }} public static void main(string [] args)throws ioexception {system.out.print(filereaderstringhandle( "src/ioutil.java")); for(byte b:filereaderbytehandle( "src/ioutil.java"))system.out.print(b); filewriterhandle( "zj.txt"、filereaderstringhandle( "src/ioutil.java")); }}