環境
- VirtualBox 6.1.36
- Debian 11.4
- OpenJDK Runtime Environment Temurin-17.0.3+7 (build 17.0.3+7)
- Eclipse IDE 2022-06 (4.24.0) for Enterprise Java and Web Developers
エンコーディングを指定してテキストファイルに書き込む
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

JavaプロジェクトをMavenプロジェクトに変換する。
Package Explorer -> write-text-file -> 右クリック -> Configure -> Convert to Maven Project

クラスファイルの追加
Package Explorer -> write-text-file/src -> 右クリック -> New -> 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); }
参考情報
- Buffered I/O Methods for Text Files - Reading, Writing, and Creating Files (The Java™ Tutorials > Essential Java Classes > Basic I/O)
- public static Path get(String first, String... more) - Paths (Java SE 17 & JDK 17)
- StandardCharsets (Java SE 17 & JDK 17)
- public static Charset forName(String charsetName) - Charset (Java SE 17 & JDK 17)
- Windows-31J - Character Sets - IANA Charset Registry - Charset names - Charset (Java SE 17 & JDK 17)
- StandardOpenOption (Java SE 17 & JDK 17)
- public static BufferedWriter newBufferedWriter(Path path, Charset cs, OpenOption... options) throws IOException - Files (Java SE 17 & JDK 17)
- The try-with-resources Statement (The Java™ Tutorials > Essential Java Classes > Exceptions)