【Java學習筆記】FileChannel的學習

來源:互聯網
上載者:User

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

定義了各種通道,這些通道表示到能夠執行 I/O 操作的實體(如檔案 和通訊端)的串連;定義了用於多工、非阻塞 I/O 操作的選取器。

寫檔案

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.FileChannel;
public class NioBlockout {
    public static void main(String arg[]) {
        try {
            FileOutputStream fos = new FileOutputStream("nioblock");
            FileChannel channel = fos.getChannel();
            ByteBuffer bytebuffer = ByteBuffer.allocate(20);
            CharBuffer charbuffer = bytebuffer.asCharBuffer();
            charbuffer.put("ABCDEFGHI");
            channel.position(20);
            channel.write(bytebuffer);
            channel.close();
        } catch(IOException e) {
            System.out.println(e);
        }
    }
}

檔案buffer

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileChannel.MapMode;
import java.nio.MappedByteBuffer;
import java.nio.CharBuffer;
public class NioMap {
    public static void main(String arg[]) {
        try {
            RandomAccessFile raf = new RandomAccessFile("nioblock","rw");
            FileChannel channel = raf.getChannel();
            MappedByteBuffer bytebuffer = channel.map(
                    FileChannel.MapMode.READ_WRITE,
                    20,18); // position and size
            CharBuffer charbuffer = bytebuffer.asCharBuffer();
            bytebuffer.load();
            char ch = charbuffer.get(3);
            System.out.println("Character: " + ch);
            charbuffer.put(3,'X');
            channel.close();
        } catch(IOException e) {
            System.out.println(e);
        }
    }
}

 

作者:gnuhpc
出處:http://www.cnblogs.com/gnuhpc/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.