Package nablarch.core.util
Class BinaryUtil
java.lang.Object
nablarch.core.util.BinaryUtil
バイナリ操作用ユーティリティクラス
-
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]
convertHexToBytes
(String hexString) 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
convertToHexStringWithPrefix
(byte[] bytes) バイト配列を16進数文字列に変換する。static byte[]
fillZerosRight
(byte[] orig, int length) 右側0詰めを行う。
ただし、以下の場合は0詰めを行わない。 元データ(orig)が0バイトの場合は、0バイトのバイト配列が返却される。 元データ(orig)の要素数が、バイト長(length)以上の場合、元データがそのまま返却される。static byte[]
toByteArray
(InputStream inputStream) 入力ストリームをバイト配列に変換する。
引数であたえられた入力ストリームはクローズされる。
-
Method Details
-
convertToBytes
引数で与えられた文字列をバイト列に変換し、引数のバイト長に満たない場合、右側0x00埋めを行う。 引数が16進数文字列である場合は、16進数をビット列と見なしバイト列に変換して返却する。 変換処理の仕様はconvertToBytes(String, Charset)
を参照すること。- Parameters:
original
- 文字列length
- バイト長encoding
- 文字エンコーディング(引数が16進数文字列である場合は使用されない)- Returns:
- バイト列
- Throws:
NumberFormatException
- 引数が"0x"から開始しており、かつ16進数文字列として成立していない場合
-
convertToHexString
バイト配列を16進数文字列に変換する。 引数がnullや空文字である場合の挙動は以下となる。- 引数で与えられたバイト列がnullである場合は、"null"という文字列を返却する
- 引数で与えられたバイト列の長さが0である場合は、空文字を返却する
- Parameters:
bytes
- バイト配列- Returns:
- 16進数文字列
-
convertToHexStringWithPrefix
バイト配列を16進数文字列に変換する。 変換後の文字列には"0x"が先頭に付加される。 引数で与えられたバイト列がnullであるか長さが0である場合、空文字を返却する。- Parameters:
bytes
- バイト配列- Returns:
- 16進数文字列
-
convertToBytes
引数で与えられた文字列をバイト列に変換する。 引数で与えられた文字列がnullか空の場合は、長さ0のバイト列を返却する。 引数が16進数として解釈可能な場合((0x[0-9A-F]+)に適合する場合)は以下の処理を行う。- 16進数をビット列と見なし、バイト列に変換して返却する。
-
16進数文字列として成立していない場合(original.matches("0x[0-9A-F].")が成立しない場合)
NumberFormatExceptionを送出する。具体例を以下に示す。
- "0x"のみの文字列
- "0xあああ"
- 文字列全体を引数で指定した文字セットでエンコーディングし、バイト列に変換して返却する
- Parameters:
original
- 16進数文字列(0x[0-9A-F]+)encoding
- 文字エンコーディング(引数が16進数文字列である場合は使用されない)- Returns:
- バイト列
- Throws:
NumberFormatException
- 引数が"0x"から開始しておりかつ16進数文字列として成立していない場合
-
convertHexToBytes
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
入力ストリームをバイト配列に変換する。
引数であたえられた入力ストリームはクローズされる。- Parameters:
inputStream
- 入力ストリーム- Returns:
- バイト配列
-