1

これに関するドキュメントが見つかりませんでした...ファイルに大量の文字を書き込み、ファイルのサイズが # of chars バイトであることを確認したいと考えています。

誰がどのクラスを使用するか知っていますか?

4

3 に答える 3

4

ファイルに大量の文字を書き込み、ファイルのサイズが # of chars バイトであることを確認します。

わかりました。ISO-8859-1 など、1 文字あたり 1 バイトのみを使用するエンコーディングを選択する必要があります。を作成し、それをエンコーディングを指定するFileOutputStreamでラップすれば、もう終わりです。OutputStreamWriterただし、ファイルで表現できる文字の範囲を制限していることに注意する必要があります。

于 2012-04-12T18:33:33.017 に答える
0

「ライター」を取る

ライターは文字を出力します

OutputStream はバイトを出力します

他のエンコーディングを使用してみてください。その場合、これにはonUnmappableCharacterメソッドがあるため、 CharSetEncoderを指定する必要があります。

于 2012-04-12T18:33:48.213 に答える
0

まず、charsあなたが話しているのはどのタイプかを考えてください。

1 つのグリフを表すために2 つ以上の s が連続して必要な場合でも、a は 8 ビットですC。さらに悪いことに、組版でよく見られる結合グリフやグリフのように、2 つの「タイプされた」文字を表すグリフもあります。charcharffll

sについて話している場合C char、定義により、すべてのファイルには chars と同じ数の文字が含まれます。文字という言葉の他の意味について話している場合は、いくつかの選択を行う必要があります。

UTF-8 の ASCII 文字セットでは 8 ビット文字が保証されています。これは、Web プロトコルで明示的にサポートされているため、今後選択するのに最適な文字セットです (w3c に感謝します!)。java charこれは、文字列内の every が 128 (整数値) 未満であることをbyte確認する限りcharUTF-8.

ISO-8859-1も 1 文字につき 1つだけ使用する文字セットbyteです。の欠点は、 Microsoft システム以外のデフォルトの文字セットではない傾向ISO-8859-1あることです。Microsoft の領域内でさえ、多くの進歩を遂げています。UTF-8

2 つの間の変換コストはそれほど高くありませんが、2 つの拡張性は劇的に異なります。基本的に、あなたが使用ISO-8859-1していて、誰かが次の製品は言語「X」をサポートする必要があると言った場合、場合によっては、最初に別の文字セットに変換してから言語サポートを追加する必要があります. サポートを追加する前に別の文字セットに変換する必要があることUTF-8はまれです。非常にまれであるため、画像のみを使用することを検討する必要があるほどまれであるため、言語はおそらく死んでおり、歴史的な関心のみがあり、主要言語が存在する島の下位部族からの方言として文書化されている可能性があります。完全なサポートがあります。

于 2012-04-12T18:57:45.050 に答える