JavaでStringを byte[]
に変換して転送したり、ファイルに保存することができます。そして、データを読む側は byte[]
を再Stringに変換して使用します。
この記事では、 byte[]
を String
に変換する方法について説明します。
1. byte[] -> String 変換
次の例では、文字列を byte[]
に変換し、再びStringに変換します。
String.getBytes()
は、文字列をbyte配列に変換します- Stringオブジェクトを生成する際に、引数としてbyte配列を渡すと、文字列に変換されます
public class ConvertByteArrayToString {
public static void main(String[] args) {
String str = "Hello, World!";
byte[] bytes = str.getBytes();
System.out.println("Original String: " + str);
String coverted = new String(bytes);
System.out.println("Converted String: " + coverted);
}
}
Output:
Original String: Hello, World!
Converted String: Hello, World!
2. byte[] -> String 변환 (文字エンコーディング)
Encoding方式は、ASCII、UTF8、UTF16などがありますが、他の環境ではUTF8ではなく、符号化方式で作られた byte[]
をUTF8に変換する場合は、変換にならないことがあります。
文字列を変換するとき、 getBytes()
と String()
の引数に同じCharacterSetを渡すと、同じ符号化方式でデータを変換することができます。
以下は、UTF-8形式でエンコード方式を明示して byte[]
を保存したり、変換する例です。
import java.nio.charset.StandardCharsets;
public class ConvertByteArrayToString {
public static void main(String[] args) {
String str = "Hello, World!";
byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
System.out.println("Original String: " + str);
String coverted = new String(bytes, StandardCharsets.UTF_8);
System.out.println("Converted String: " + coverted);
}
}
Output:
Original String: Hello, World!
Converted String: Hello, World!
3. Default Encodingの確認方法
システムに設定された基本的なEncoding方式を確認するときは、3つの方法があります。
- Charset.defaultCharset()
- file.encodingプロパティ
- InputStreamReader.getEncoding()
次の3つの方法でデフォルトのエンコーディング方式を出力する例です。
import java.io.*;
import java.nio.charset.Charset;
public class ConvertByteArrayToString {
public static void main(String[] args) throws FileNotFoundException {
System.out.println("Charset.defaultCharset(): " + Charset.defaultCharset());
System.out.println("file.encoding: " + System.getProperty("file.encoding"));
System.out.println("InputStreamReader.getEncoding(): "
+ new InputStreamReader(new FileInputStream("/var/tmp/sample.txt")).getEncoding());
}
}
Output:
Charset.defaultCharset(): UTF-8
file.encoding: UTF-8
InputStreamReader.getEncoding(): UTF8
References
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法