回答編集履歴

1

バイナリファイル出力

2019/12/25 14:40

投稿

xebme
xebme

スコア1083

test CHANGED
@@ -28,4 +28,26 @@
28
28
 
29
29
  ```
30
30
 
31
- sjisが20バイトを超える場合は使えません。
31
+ sjisが20バイトを超える場合は使えません。全角文字を全く扱わない場合は切り捨て問題は起こりません。
32
+
33
+
34
+
35
+ **バイト配列をファイル出力(追記)**
36
+
37
+
38
+
39
+ もしかして、バイナリファイルの出力方法がわからないということでしょうか。byte[]をそのままファイル出力するには、`java.io.FileOutputStream`を使います。
40
+
41
+ ```Java
42
+
43
+ try (FileOutputStream fs = new FileOutputStream(" ... ")) {
44
+
45
+ fs.write(sjis);
46
+
47
+ } catch (IOException e) { ... }
48
+
49
+ ```
50
+
51
+ `java.io.OutputStreamWriter`で出力するとunicode -> ネイティブエンコーディング変換が行われます。
52
+
53
+ Reader/Writerはエンコーディングを変換します。InputStream/OutputStreamはバイナリをそのまま扱い変換しません。