PrintWriter
ファイルへの書き込みに使用するときにそれを知りたいです。ファイルまたはバイナリ形式でASCIIコードで書き込みますか? ありがとう。
4220 次
3 に答える
3
AWriter
は文字を書き込むため、最終的にファイルに格納されるバイナリ データはエンコーディングによって異なります。
たとえば、UTF-16 のような 16 ビット エンコーディングを使用している場合、各 ASCII バイトに対して余分なゼロ バイトが存在します。
public class TestWriter
{
public static void main(String[] args)
throws UnsupportedEncodingException
{
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final OutputStreamWriter out = new OutputStreamWriter(baos, "UTF-16");
final PrintWriter writer = new PrintWriter(out);
writer.printf("abc");
writer.close();
for (final byte b : baos.toByteArray())
{
System.out.printf("0x%02x ", b);
}
System.out.printf("\n");
}
}
印刷し0xfe 0xff 0x00 0x61 0x00 0x62 0x00 0x63
ます。
于 2011-02-12T08:28:41.077 に答える
0
ほとんどのASCII文字をテキストまたはバイナリとして記述でき、ほとんどの文字エンコードで同じ結果が得られます。ASCII文字のうちの2つは、テキストファイルで特別な意味を持ち、改行\nと復帰\rです。これは、テキストファイルがあり、これらの文字を含む文字列を記述したい場合、読者がテキストファイルの行末(println()と行末など)を区別するのが難しいか不可能な場合があることを意味します。文字列を入力します。例:print( "1 \ n2 \ n3 \ n")
于 2011-02-12T08:52:18.053 に答える
0
文字データを出力します。しかし、これは 128 文字しか保持しない ASCII セットを超えている可能性があり、そのうちの最初の 32 文字は特殊な制御文字です。
于 2011-02-12T08:24:18.203 に答える