Java17: エンコーディングを指定してテキストファイルに書き込む

2022年7月26日(火)

環境

エンコーディングを指定してテキストファイルに書き込む

GitHubのリポジトリ

https://github.com/yvafdevnsk/java17/tree/main/java17-write-text-file

ワークスペースの設定

インデントをスペースで行う。

Window -> Preferences
    Java
        Code Style
            Formatter
                Edit

Indentation
    Tab policy: Spaces only
          

ファイルを保存するときに余分なスペースを取り除く。

Window -> Preferences
    Java
        Editor
            Save Actions

[x] Perform the selected actions on save
    [x] Additional actions
        Configure

Code Organizing
    Formatter
        [x] Remove trailing whitespace
            [x] All lines
          

プロジェクトの作成

ファイルメニューからJavaプロジェクトを作成する。

File -> New -> Other -> Java Project
          
Create a Java Project

JavaプロジェクトをMavenプロジェクトに変換する。

Package Explorer -> write-text-file -> 右クリック -> Configure -> Convert to Maven Project
          
Maven POM

クラスファイルの追加

Package Explorer -> write-text-file/src -> 右クリック -> New -> Class
          
Java Class

実装

エンコーディングに "Windows-31J" を指定してテキストファイルに書き込む。

Path outputFilePath = Paths.get("/home/mizuki/tmp", "write-text-file-windows31j.txt");
Charset charset = Charset.forName("Windows-31J");

String outputString = "あいうえお赤青黄野菜肉魚ビタミンカルシウム鉄";

try (BufferedWriter writer = Files.newBufferedWriter(outputFilePath, charset)) {
    writer.write(outputString);
}
catch (IOException e) {
    System.err.println(e);
}
        

エンコーディングに "UTF-16LE" を指定してテキストファイルに書き込む。

Path outputFilePath = Paths.get("/home/mizuki/tmp", "write-text-file-utf16le.txt");
Charset charset = StandardCharsets.UTF_16LE;

String outputString = "あいうえお赤青黄野菜肉魚ビタミンカルシウム鉄";

try (BufferedWriter writer = Files.newBufferedWriter(outputFilePath, charset)) {
    writer.write(outputString);
}
catch (IOException e) {
    System.err.println(e);
}
        

参考情報