Java中的PrintStream write()方法
直接从这个Java: 写 公共无效写入(int b) 将指定的字节写入此流。如果字节是换行符,则 启用自动刷新后,将调用刷新方法 请注意,字节是按给定方式写入的;写一个将 根据平台的默认字符编码进行翻译, 使用print(char)或println(char)方法 我看到它是指定的Java中的PrintStream write()方法,java,printstream,Java,Printstream,直接从这个Java: 写 公共无效写入(int b) 将指定的字节写入此流。如果字节是换行符,则 启用自动刷新后,将调用刷新方法 请注意,字节是按给定方式写入的;写一个将 根据平台的默认字符编码进行翻译, 使用print(char)或println(char)方法 我看到它是指定的字节是按给定的方式写入的 然而,如果我尝试写(65)我得到了我期望的A 我应该在write()中写什么才能与print()不匹配? 你能举个例子吗?二进制01000001(字节)是ASCII字符A,所以当你以字符串的形
字节是按给定的方式写入的代码>
然而,如果我尝试写(65)
我得到了我期望的A
我应该在write()
中写什么才能与print()
不匹配?
你能举个例子吗?二进制
01000001
(字节
)是ASCII字符A
,所以当你以字符串
的形式读取时,你会得到它
你需要使用
以获得相同的输出
或者任何你需要的类型
write(new Integer(65).toString().getBytes());
我应该在write()中写什么才能与print()不匹配?你能举个例子吗
印刷品
65 // the String value '65'
A // the character value of binary 65
阅读有关打印方法的说明。上面的一个接受int
和
打印一个整数。string.valueOf(int)生成的字符串为
根据平台的默认字符转换为字节
编码,而这些字节正是按照
写入(int)方法。
在这两种情况下,字节都会写入流,但它们的显示方式取决于您读取它们的方式String
具有接受charsetName
或Charset
对象的构造函数。A(作为一个概念和一个类)是
16位Unicode代码单元序列之间的命名映射
和字节序列
给定
写入(sData,0,sData.length)代码>
和
打印代码>
应该是等效的。如果您尝试
writer.print('Ä');
根据您的平台,您可能会得到不同的结果。对于使用拉丁语-1作为默认编码的平台,它可能是一个单字节,或者对于使用UTF-8的平台,它可能是两个字节。Binary 65(作为一个字节)是ASCII字符a
@Sotirios Delimanolis再次阅读该问题,他希望“a”write(65)
将a
输出到流中print(65)
将65
输出到流中。我认为print(65)
将采用Unicode字符65(0x41),使用默认字符编码将其转换为字节,然后写入这些字节。如果是UTF-8,则为A
。事实上,在很多字符编码中,它都是A
@LeeMeador。我想知道“按原样写入字节”和使用编码之间的区别。“按原样字节”我希望有些东西没有编码。然而,A是编码的结果
65 // the String value '65'
A // the character value of binary 65
String s = "some string";
byte[] sData = s.getBytes();
writer.print('Ä');