NIOファイル、出力ファイルを読み込みます

イオの流れの一種類:

パッケージcom.cxy.ssp.Automic; 

輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException; 
インポートたjava.nio.ByteBuffer; 
輸入java.nio.channels.FileChannelの。
輸入java.util.concurrent.CyclicBarrier。
輸入java.util.concurrent.atomic.AtomicReferenceFieldUpdater。
輸入java.util.concurrent.atomic.AtomicStampedReference。
// 通过NIO实现文件IO 
パブリック クラスDemo3 {
     公共 静的 ボイドメイン(文字列[]引数)がスロー例外{
         // 1创建输出流 
        たFileOutputStreamたFileOutputStream = たFileOutputStream(" bas.txt " )。

    //建設チャンネル のFileChannelチャンネル
= fileOutputStream.getChannel();
     //バッファ作成し たByteBufferバッファ
= ByteBuffer.allocate(1024 );      // 文字列STR = " Hello Worldの" ;
    バッファに//データ buffer.put( str.getBytes());
試み{
    //タグバッファが空にされる必要がある、次に操作 buffer.flip();
      //チャネルの内容書き込み channel.write(バッファ); }
キャッチ(IOExceptionをE){ E .printStackTrace(); } fileOutputStream.close(); } }
com.cxy.ssp.Automicパッケージ; 

インポートjava.io.FileInputStream; 
インポートjava.nio.ByteBufferの,; 
インポートjava.nio.channels.FileChannelの、

パブリック クラスDemo4 {
     公共 静的 ボイドメイン(文字列[]引数)が例外を{スロー
         / / 第一、入力ストリームを構築する 
        のFileInputStreamのFileInputStream = 新しい新規のFileInputStream(" bas.txt " );
         //は、捕捉チャネルを通って流れる 
        のFileChannelチャネル= fileInputStream.getChannel();
         // のキャッシュ領域準備 
        のByteBufferバッファー= ByteBuffer.allocate(1024 )。
         //内部チャネルからデータを読み込みます。バイトデータ
        channel.read(バッファ);
         // の内容印刷 
        システム。OUT .println(新しい新しい文字列(buffer.array()));
        // 閉じる
        fileInputStream.close(); 
    } 
}
パッケージcom.cxy.ssp.Automic; 

輸入java.io.FileInputStream; 
輸入java.io.FileOutputStreamは、
輸入java.nio.channels.FileChannelの。

パブリック クラスDemo5 {
     公共 静的 ボイドメイン(文字列[]引数)は例外{スロー
        のFileInputStream FileInputStreamの = 新しい FileInputStreamを(" bas.txtを" )。
        FileOutputStreamのFileOutputStream = 新しいのFileOutputStream(" B.TXT " ); 

        FileChannelチャネル = fileInputStream.getChannel()。
        FileChannelのチャネル1= fileOutputStream.getChannel()。

        channel1.transferFrom(チャンネル0 、channel.size())。

        channel1.close(); 
        channel.close(); 


    } 
}

 

 

アイデア:最初の入力または出力ストリームを構築し、その後、出力または入力フローセットアップチャネル、channle

バッファを作成し、操作、チャネル・バッファゾーンを運営

 

上記のコードの概要:

事故への1つの入力と出力され、コンピュータとの観点から、コンピュータの出力は、出力され、コンピュータが入力され、

バッファ内に置くために必要なデータ・バイトの2出力ストリーム、

3つの入力ストリーム:データは、データを読み取ることが可能な唯一のチャネル次いで、バッファ中に置かれる必要はありません

 

おすすめ

転載: www.cnblogs.com/xiufengchen/p/11563287.html