バイトストリーム:
FileInputStreamを
FileOutputStream
バイトストリームは、1バイト、読み取ることができるファイルの種類の利点を読む、欠点が問題にプレーンテキストを扱うときに発生する可能性がある(各2バイトのために中国語の単語、文字化け読み取りエラーにつながることができます)。
字符流:
FileReaderを、てFileWriter
あなただけのようにプレーンテキストファイル(メモ帳を右開くことができ、コンテンツには影響しません)、TXT、HTMLを操作することができます。
バイトストリーム、バイト8ビットが受信したデータバイト
データ文字ストリームのcharを受け、チャーは16です
漢字は16である2つのバイトを占有します
文字ストリームはありませんがだから、バイトストリームが文字化けすることがあります。
どちらも、ほぼ同じスペースが、パラメータのバイトは文字です
FileReaderの:
パッケージIO; 輸入java.io.FileInputStream; 輸入java.io.FileReader。 インポートにjava.io.IOException; パブリック クラスFileReaderTest { 公共 静的 ボイドメイン(文字列[]引数){ FileReaderのFR = NULL ; FileInputStreamのFIS = nullを。 試す{ FR = 新しい FileReaderの( "C:\\ユーザー\\管理者\\デスクトップ\\テスト\\ filereadertest.txt" ); FIS = 新しいですFileInputStreamを( "C:\\ユーザー\\管理者\\デスクトップ\\テスト\\ filereadertest.txt" ); CHAR [] C = 新しい CHAR [5 ]。 int型のカウント= fr.read(C); 一方、(カウント= -1!){ System.out.printlnは( "--- |" + 新しい文字列(C)+ "| ---" ); カウント = fr.read(C); } // --- |你好世界、| --- // --- | // 你好I | --- // --- | / O好I |。--- バイト [] B = 新しい バイト[5 ]; COUNT = fis.read(B); ながら(!COUNT = -1 ){ するSystem.out.println( "--- |" + 新しい新しい文字列(B)+ "| ---" ); COUNT = fis.read(B); } // ?--- |こんにちは| --- // ?--- |ランシュウ| --- // --- | // ですか?| --- / / --- |脇の下/ O |?--- // --- |/ O |?--- // バイト文字化け、文字なし // 各文字を読んでいるのでcharが16ビットであるが、唯一のバイトの読み取りバイトを使用することができ、各8ビット、バイトが文字化けされるように、各文字は、16です } キャッチ(例外E){ e.printStackTrace(); } 最後に { // 流れがfianlly閉じることができることを保証するために使用され たIF(FR =!ヌル){ 試み{ fr.close(); // ストリームを閉じ } キャッチ(IOExceptionをE) { e.printStackTrace(); } } IF(FIS =!ヌル){ 試み{ fis.close(); // ストリームを閉じ } キャッチ(IOExceptionをE){ e.printStackTrace(); } } } } }
FileWriter
パッケージIO; インポートjava.io.FileOutputStreamは、 インポートjava.io.FileWriter; インポートにjava.io.IOException; パブリック クラスFileWriterTest { 公共 静的 ボイドメイン(文字列[]引数){ てFileWriter FW = NULL ; たFileOutputStreamのFOS = NULL ; トライ{ FW = 新しい新しいてFileWriter(「C:\\ \\デスクトップユーザー\\ \\ \\テストfileWriterTest.txt管理者」); //は、このファイルを持っていないが、その後、新たに作成し、 FOSを= 新新FileOutputStream(「C:\\ \\デスクトップユーザー\\ \\ \\ fileWriterTest.txtテスト管理者」、真の); // 2番目のパラメータは、元に戻って追加するかどうか、デフォルトが覆われている偽されている、してFileWriter同じ李 fw.write( "こんにちは、世界、\ rを\ n個こんにちは難易度、I / O \ rをN- \。"); // テキストを追加したい場合は、Windowsの改行は、TXTます\ r \ nを\にあります文字列"\ rを\ n"は、使用"\\ R \\ n"は出力"\ rを\ n"はあります。 fw.flush(); // 以前に書き、そして今、新しいバージョンが自動的にプッシュしていた-しかし、さまざまなバージョンに対応するために最善で書かれている- // 、こんにちは // こんにちはナナI / Oのは、 fos.write( "Hello Worldの、\ R \ nはハロー困難I / O \ R&LT \ N-" .getBytes()); // バイトに文字列[]配列、バイトストリームは、その後することができアクセス。 fos.flushは(); // 以前に書き、そして今、新しいバージョンが自動的にプッシュしていた- -しかし、さまざまなバージョンに対応するために最善で書かれている //こんにちは、 // こんにちはナナI / O。 // ため、すべて一度には、一見ので、少し問題に分割されていない- -バッチは、より複雑な状況を入力すると、効果的であることが必要かもしれ } キャッチ(例外E){ e.printStackTrace(); } 最後に { // fianlly閉じることができます流れを確保するために使用 のIF(!FW = ヌル){ 試み{ fw.closeを(); //は、ストリームを閉じます } キャッチ(IOExceptionをE){ e.printStackTraceを(); } } IF!(FOS = nullを){ 試み{ fos.close(); // ストリーム閉じ } キャッチ(IOExceptionをE){ e.printStackTrace()を; } } } } }