Class BinaryUtil

java.lang.Object
nablarch.core.util.BinaryUtil

@Published public final class BinaryUtil extends Object
バイナリ操作用ユーティリティクラス
Author:
T.Kawasaki
  • Method Summary

    Modifier and Type
    Method
    Description
    static byte[]
    16進数文字列をバイト列に変換する。
    static byte[]
    convertToBytes(String original, int length, Charset encoding)
    引数で与えられた文字列をバイト列に変換し、引数のバイト長に満たない場合、右側0x00埋めを行う。
    static byte[]
    convertToBytes(String original, Charset encoding)
    引数で与えられた文字列をバイト列に変換する。
    static String
    convertToHexString(byte[] bytes)
    バイト配列を16進数文字列に変換する。
    static String
    バイト配列を16進数文字列に変換する。
    static byte[]
    fillZerosRight(byte[] orig, int length)
    右側0詰めを行う。
    ただし、以下の場合は0詰めを行わない。 元データ(orig)が0バイトの場合は、0バイトのバイト配列が返却される。 元データ(orig)の要素数が、バイト長(length)以上の場合、元データがそのまま返却される。
    static byte[]
    toByteArray(InputStream inputStream)
    入力ストリームをバイト配列に変換する。
    引数であたえられた入力ストリームはクローズされる。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • convertToBytes

      public static byte[] convertToBytes(String original, int length, Charset encoding)
      引数で与えられた文字列をバイト列に変換し、引数のバイト長に満たない場合、右側0x00埋めを行う。

      引数が16進数文字列である場合は、16進数をビット列と見なしバイト列に変換して返却する。

      変換処理の仕様はconvertToBytes(String, Charset)を参照すること。

      Parameters:
      original - 文字列
      length - バイト長
      encoding - 文字エンコーディング(引数が16進数文字列である場合は使用されない)
      Returns:
      バイト列
      Throws:
      NumberFormatException - 引数が"0x"から開始しており、かつ16進数文字列として成立していない場合
    • convertToHexString

      public static String convertToHexString(byte[] bytes)
      バイト配列を16進数文字列に変換する。

      引数がnullや空文字である場合の挙動は以下となる。

      • 引数で与えられたバイト列がnullである場合は、"null"という文字列を返却する
      • 引数で与えられたバイト列の長さが0である場合は、空文字を返却する
      Parameters:
      bytes - バイト配列
      Returns:
      16進数文字列
    • convertToHexStringWithPrefix

      public static String convertToHexStringWithPrefix(byte[] bytes)
      バイト配列を16進数文字列に変換する。

      変換後の文字列には"0x"が先頭に付加される。

      引数で与えられたバイト列がnullであるか長さが0である場合、空文字を返却する。

      Parameters:
      bytes - バイト配列
      Returns:
      16進数文字列
    • convertToBytes

      public static byte[] convertToBytes(String original, Charset encoding) throws NumberFormatException
      引数で与えられた文字列をバイト列に変換する。

      引数で与えられた文字列がnullか空の場合は、長さ0のバイト列を返却する。

      引数が16進数として解釈可能な場合((0x[0-9A-F]+)に適合する場合)は以下の処理を行う。

      • 16進数をビット列と見なし、バイト列に変換して返却する。
      • 16進数文字列として成立していない場合(original.matches("0x[0-9A-F].")が成立しない場合) NumberFormatExceptionを送出する。具体例を以下に示す。
        • "0x"のみの文字列
        • "0xあああ"
      引数が16進数として解釈できない場合は以下の処理を行う。
      • 文字列全体を引数で指定した文字セットでエンコーディングし、バイト列に変換して返却する

      Parameters:
      original - 16進数文字列(0x[0-9A-F]+)
      encoding - 文字エンコーディング(引数が16進数文字列である場合は使用されない)
      Returns:
      バイト列
      Throws:
      NumberFormatException - 引数が"0x"から開始しておりかつ16進数文字列として成立していない場合
    • convertHexToBytes

      public static byte[] convertHexToBytes(String hexString)
      16進数文字列をバイト列に変換する。

      引数の文字列が以下の条件に当てはまる場合NumberFormatExceptionを送出する。

      • 文字列がnullや空文字である場合
      • ([0-9A-F]+)に当てはまらない場合
      • 16進数文字列であるが、先頭が"0x"で開始している場合。 "0x"で開始する16進数文字列を変換する場合はconvertToBytes(String, Charset)を利用すること。

      Parameters:
      hexString - 16進数文字列([0-9A-F]+)
      Returns:
      バイト配列
      Throws:
      NumberFormatException - 16進数文字列として成立していない場合、 文字列がnullか空文字である場合
    • fillZerosRight

      public static byte[] fillZerosRight(byte[] orig, int length)
      右側0詰めを行う。
      ただし、以下の場合は0詰めを行わない。
      • 元データ(orig)が0バイトの場合は、0バイトのバイト配列が返却される。
      • 元データ(orig)の要素数が、バイト長(length)以上の場合、元データがそのまま返却される。
      Parameters:
      orig - 元データ
      length - バイト長
      Returns:
      0詰め後のバイト列
    • toByteArray

      public static byte[] toByteArray(InputStream inputStream)
      入力ストリームをバイト配列に変換する。
      引数であたえられた入力ストリームはクローズされる。
      Parameters:
      inputStream - 入力ストリーム
      Returns:
      バイト配列