Java-nio-charset

提供:Dev Guides
移動先:案内検索

Java NIO-CharSet

Javaには、すべての文字に対して、JVMによって内部的に処理される適切に定義されたUnicodeコード単位があります。したがって、Java NIOパッケージは、主に文字セットとUNICODEのエンコードとデコードに使用されるCharsetという名前の抽象クラスを定義します。

標準文字セット

Javaでサポートされている文字セットを以下に示します。

  • US-ASCII -7ビットASCII文字。
  • ISO-8859-1 -ISOラテンアルファベット。
  • UTF-8 -これは8ビットUCS変換形式です。
  • UTF-16BE -これは、ビッグエンディアンバイトオーダーの16ビットUCS変換形式です。
  • UTF-16LE -これは、リトルエンディアンのバイト順の16ビットUCS変換です。
  • UTF-16 -16ビットUCS変換フォーマット。

Charsetクラスの重要なメソッド

  • * forName()*-このメソッドは、指定された文字セット名の文字セットオブジェクトを作成します。名前は正規またはエイリアスにすることができます。
  • * displayName()*-このメソッドは、指定された文字セットの正規名を返します。
  • * canEncode()*-このメソッドは、指定された文字セットがエンコードをサポートしているかどうかを確認します。
  • * decode()*-このメソッドは、指定された文字セットの文字列をUnicode文字セットの文字バッファにデコードします。
  • * encode()*-このメソッドは、指定された文字セットのバイトバッファーにUnicode文字セットの文字バッファーをエンコードします。

次の例は、Charsetクラスの重要なメソッドを示しています。

package com.java.nio;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class CharsetExample {
   public static void main(String[] args) {
      Charset charset = Charset.forName("US-ASCII");
      System.out.println(charset.displayName());
      System.out.println(charset.canEncode());
      String str= "Demo text for conversion.";
     //convert byte buffer in given charset to char buffer in unicode
      ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
      CharBuffer charBuffer = charset.decode(byteBuffer);
     //convert char buffer in unicode to byte buffer in given charset
      ByteBuffer newByteBuffer = charset.encode(charBuffer);
      while(newbb.hasRemaining()){
         char ch = (char) newByteBuffer.get();
         System.out.print(ch);
      }
      newByteBuffer.clear();
   }
}

出力

US-ASCII
Demo text for conversion.