0

この Java APIから直接:

書きます

public void write(int b)

指定されたバイトをこのストリームに書き込みます。バイトが改行で、自動フラッシュが有効になっている場合、フラッシュ メソッドが呼び出されます。

バイトは与えられたとおりに書かれていることに注意してください。プラットフォームのデフォルトの文字エンコーディングに従って変換される文字を書き込むには、print(char) または println(char) メソッドを使用します。

指定されているようですが、the byte is written as given; 試してみるとwrite(65)、期待どおりの結果が得られAます。

write()と同じように一致しないようにするには、何を書く必要がありprint()ますか? 何か例を挙げていただけますか?

4

3 に答える 3

0

バイナリ01000001( byte) は ASCII 文字でAあるため、String.

使用する必要がありますFilterOutputStream.html#write(byte[])

write("65".getBytes());

同じ出力を取得します。

または、必要なタイプ

write(new Integer(65).toString().getBytes());

print() と同じように一致しないようにするには、write() に何を記述すればよいですか? 何か例を挙げていただけますか?

System.out.println(65); // writes 65 as a String, String.valueOf(65).getBytes()
System.out.write(65); // writes 65 as a byte
System.out.flush();

版画

65 // the String value '65'
A // the character value of binary 65

メソッドについては、 javadocを参照してください。print上記のものはintandを受け入れます

整数を出力します。String.valueOf(int)によって生成された文字列は、プラットフォームのデフォルトの文字エンコーディングに従ってバイトに変換され、これらのバイトはwrite(int) メソッドとまったく同じ方法で書き込まれます。

いずれの場合も、バイトはストリームに書き込まれますが、表示方法は読み取り方法によって異なります。またはオブジェクトStringを受け入れるコンストラクターがあります。A (概念およびクラスとして) はcharsetNameCharsetCharset

一連の 16 ビット Unicode コード単位と一連のバイトとの間の名前付きマッピング。

于 2013-09-05T15:10:22.930 に答える
0

与えられた

String s = "some string";
byte[] sData = s.getBytes();

write(sData, 0, sData.length);print(s);

同等である必要があります。

于 2013-09-05T15:15:47.040 に答える