使用Java NIO API編碼和解碼操作可以從一個字串執行到另一個字元集。兩個類:CharsetEncoder和CharsetDecoder在ByteBuffer和CharBuffer之間的編碼和解碼中起著重要的作用。
只有當處理程式可用時,反應堆(Reactor)保持到達事件的跟蹤和調度。我們來看看反應堆中執行的編碼和解碼操作的架構:

Java NIO中的CharsetEncoder
CharsetEncoder用於將Unicode字元編碼為位元組序列。它還返回一個提供任何錯誤資訊的CoderResult對象。
Java NIO中的CharsetDecoder
CharsetDecoder用於將數組或位元組序列解碼為Unicode字元。在從ByteBuffer到CharBuffer的解碼過程中,獲得CoderResult對象。
Java NIO中的Charset.newEncoder()
在CharsetEncoder中,Charset.newEncoder()用於創建Charset對象,然後通過newEncoder()方法,可以獲取CharsetEncoder對象。
Java NIO Charset.newDecoder()
在CharsetDecoder中,Charset.newDecoder()用於創建Charset對象,然後通過newDecoder()方法,可以獲取一個CharsetDecoder對象。
基本編碼和解碼示例
package com.zaixian;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
public class CharsetExam {
    public static void main(String[] args) throws CharacterCodingException {
        Charset cs = Charset.forName("UTF-8");
        CharsetDecoder csdecoder = cs.newDecoder();
        CharsetEncoder csencoder = cs.newEncoder();
        String st = "Example of Encode and Decode in Java NIO.";
        ByteBuffer bb = ByteBuffer.wrap(st.getBytes());
        CharBuffer cb = csdecoder.decode(bb);
        ByteBuffer newbb = csencoder.encode(cb);
        while (newbb.hasRemaining()) {
            char ca = (char) newbb.get();
            System.out.print(ca);
        }
        newbb.clear();
    }
}
執行上面示例代碼,得到以下結果 -
Example of Encode and Decode in Java NIO.
						上一篇:
								Java NIO字元集
												下一篇:
								Java NIO通道FileLock
					
					