変換の流れ:出力変換文字ストリーム
文字はバイトコードにストリームに書き込ま。効果は、文字列がストリームがバイトライトからバイトを使用して、指定されたコード・テーブルに従ってバイトに変換されることです。
変換のフローの概要
OutputStreamWriter:文字出力ストリーム - データを書き込みます
公共のOutputStreamWriter(OutputStreamのうち)
公共のOutputStreamWriter(OutputStreamのうち、文字列たcharsetName)
InputStreamReader:文字入力ストリーム - 読み出しデータ
公共InputStreamReaderの(入力ストリームで)
公共InputStreamReaderの(入力ストリームでは、文字列たcharsetNameが )
あなたのプログラムのテキストファイルがストップウォッチでない場合は、UTF-8形式のtxtファイルのエンコーディングを作成し、その後、変換ストリームに変換
com.oracle.demo01パッケージ; インポートjava.io.FileNotFoundException; インポートjava.io.FileOutputStreamは、 インポートにjava.io.IOException; インポートjava.io.OutputStreamWriterが、 インポートjava.io.UnsupportedEncodingException; publicクラスDemo01 { 主要な公共の静的な無効(文字列[]引数)にIOException {スロー 先をクリア// ( "D:\\ \\ A.TXTのJava")のFileOutputStreamのFOSが=新しい新規のFileOutputStream; //転流を作成 するOutputStreamWriter OSW =新規のOutputStreamWriter(FOS、 「UTF- 8 "); //書き込み文字が (osw.write")」の全てに始まるが、臨時; osw.flush(); //解放資源 osw.close(); } }
パッケージcom.oracle.demo01。 輸入java.io.FileInputStream; 輸入java.io.FileNotFoundException。 インポートにjava.io.IOException; 輸入java.io.InputStreamReader。 輸入java.io.UnsupportedEncodingException。 パブリッククラスDemo02 { 公共の静的な無効メイン(文字列[] argsが)にIOException {スロー //明确数据源 FileInputStreamのFIS =新しいFileInputStreamを( "D:\\のJava \\ A.TXTを"); //创建转换流对象 InputStreamReaderのISR =新しいInputStreamReaderの(FIS、 "UTF-8"); int型のlen = 0; CHAR [] CH =新しいCHAR [1024]。 //开始读 ながら(!(LEN = isr.read(CH))= - 1){ System.out.printlnは(新しい文字列(CH、0、LEN))。 } //释放资源 isr.close()。 } }
A.TXT A.TXTに同じファイル形式だけでなく、ファイルの内容をコピー
パッケージcom.oracle.demo01。 輸入java.io.FileInputStream; 輸入java.io.FileNotFoundException。 輸入java.io.FileOutputStreamは、 インポートにjava.io.IOException; 輸入java.io.InputStreamReader。 輸入java.io.OutputStreamWriterが、 輸入java.io.UnsupportedEncodingException。 パブリッククラスコピー{ 公共の静的な無効メイン(文字列[]引数)は、IOExceptionがスロー{ // 1先明确数据源。 FileInputStreamのFIS =新しいFileInputStreamを( "D:\\ジャワ\\ A.TXT")。 // 2创建字符输入转换流 InputStreamReaderのISR =新しいInputStreamReaderの(FIS、 "UTF-8"); 。// 3明确目的地 たFileOutputStreamのFOS =新しいのFileOutputStream( "D:\\ javaの\\ aa.txt"); // 4文字出力ストリーム変換を作成します OSW =新しいのOutputStreamWriter OutputStreamWriterを(FOS、 "UTF-8"); //开始复制 のchar [] CH =新しいCHAR [1024]。 int型のlen = 0; 一方、(!(LEN = isr.read(CH))= - 1){ osw.write(CH、0、LEN)。 osw.flush(); } //释放资源 isr.close()。 osw.close(); } }
バッファされたストリーム:ストリームは、効率的な書き込みを提供するために、加速されます
キーワード:バッファ
2つのバイトは、ストリームをバッファリングされています。
バイトのバッファリングされた入力ストリーム:BufferedInputStreamを
バイトバッファリングされた出力ストリーム:なBufferedOutputStream
com.oracle.demo02パッケージ; インポートjava.io.BufferedOutputStream; インポートjava.io.FileOutputStreamは、 インポートにjava.io.IOException; publicクラスDemo01 { 公共の静的な無効メイン(文字列[]引数)はIOExceptionがスロー{ //宛先をクリア(出力)TXTファイルを書い たFileOutputStream FOSは=新しい新たFileOutputStream( "D:\\ \\ Javaのhello.txt"); //(バイトバッファの出力ストリームに追加された)バッファ・オブジェクトが作成 新しい新規なBufferedOutputStream BOS =を(なBufferedOutputStream FOS); //書き込みバイト bos.write( "ABC123" .getBytes()); //解放資源 bos.close(); } }
上記のコードは、私が先のファイルをクリアしたいバイトバッファリングされた出力ストリーム、あり、そして最後に走った人の最後のリリースに呼ばれる書き込みバイトをスピードアップするために使用されるバッファを作成し、成功には見えませんでした。
バイトのバッファリングされた入力ストリーム:BufferedInputStreamを
私は内部のファイルからデータを読み込みます
com.oracle.demo02パッケージ; インポートjava.io.BufferedInputStreamのザ; インポートjava.io.FileInputStream; インポートにjava.io.IOException; publicクラスDemo02 { 公共の静的な無効メイン(文字列[]引数)は、IOExceptionがスロー{ //データソースをクリアTXTファイルは、内容を読み出し(リード) FileInputStreamの新しい新しいFISをFileInputStreamをを=( "D:\\ \\ hello.txtのJava"); //バイトストリーム入力バッファ作成 にBufferedInputStream BIS =新しい新しいBufferedInputStreamを(FIS)が、 int型0 = LEN; ながら((LEN = bis.read())= - 1。!){ System.out.print((CHAR)LEN)の; } //解放リソース bis.close(); } }
文字バッファ2分画:
文字バッファ入力ストリーム:BufferedReaderの eadLine ();行は、行の内容を含むテキスト文字列を読み出し、NULLを返し、任意のターミネーターを含んでいません。
文字バッファ出力ストリーム:BufferedWriterの独特の方法改行();改行
com.oracle.demo02パッケージ; インポートjava.io.BufferedWriter; インポートjava.io.FileWriter; インポートにjava.io.IOException; publicクラスDemo03 { 公共の静的な無効メイン(文字列[]引数)はIOExceptionがスロー{ //宛先をクリア FW =新しい新しいてFileWriterてFileWriter( "D:\\ \\ hello.txtのJava"、trueに); //文字バッファ出力ストリームを作成 BufferedWriterの、新しい新しいBufferedWriterの、BW =(FW); //書き込みバイト 「(あなたをbw.writeをまあ、ビッグベアー");! bw.flushは(); //ラップ ; bw.newLine() 私は)」強いはげ元気ですbw.writeを("; //解放資源 bw.close(); } }
パッケージcom.oracle.demo02。 輸入java.io.BufferedReader; 輸入java.io.FileReader。 インポートにjava.io.IOException; パブリッククラスDemo04 { 公共の静的な無効メイン(文字列[] argsが)にIOException {スロー //明确数据源 FileReaderのFR =新規FileReader( "D:\\のJava \\ hello.txtを"); //创建字符输入缓冲流 BufferedReaderのBR =新しいをBufferedReader(FR)。 文字列の行= NULL; /*br.readLine()。 System.out.println(ライン)。 行= br.readLine(); System.out.println(ライン)。 行= br.readLine(); System.out.println(ライン); * / ながら(!(ライン= br.readLine())= NULL){ System.out.println(ライン); } //解放資源 br.close(); } }
eadLine ()ストリームの終わりであれば、任意の行ターミネータを含まない行の内容を含むテキスト文字列のラインを、読むにはnull