0

今日、ファイルに書き込むときは、書き込むエンコーディングは問題にならないと言われました。エンコーディングについてはよくわかりませんが、エンコーディングが読み取り/表示専用であることを考えると、これは妥当に思えますか?

ファイルから読み取られるバイトのエンコーディングは重要ですか? エンコーディングは解析/表示専用ですか?

元。

var bytes = getFileBytes();
bytes.remove(new byte[] { 232, 211 });
anotherStream.writeBytes(bytes);
// I'm assuming that Encoding is irrelevant 
4

2 に答える 2

1

ファイルからバイトを読み取るだけで、これらのバイトをテキストとして解釈しようとしない場合、エンコーディングは問題になりません。たとえば、ファイルを別のファイルにコピーしたり、ファイルをソケットにコピーしたりする場合は、エンコードを安全に無視できます。明らかに、ストリームにバイナリデータ (バイナリ形式の s のシーケンスなど)が含まれている場合も、エンコードは必要ありません。バイトを文字として理解していない限り、あなたの例も完全に有効です。int232211

ただし、ファイル (またはバイト配列などの任意のバイト列) をtextとして解釈し始めると、エンコードを無視できなくなります。確かに、通常、 のようなものを使用するときにエンコーディングを指定しないことは可能ですが、この場合、エンコーディングは暗黙的に指定され、通常はデフォルトとしてロケール エンコーディングが使用されます。このため、バイト ストリームから文字データをロードするときに使用するエンコーディングを常に指定することをお勧めします (例: 経由)。実際のエンコーディングは、プログラムを実行しているシステムに依存しません。FileReaderInputStreamReader

于 2013-05-16T06:01:25.137 に答える