Java 关于PrintWriter,求高手解答
有这样一句话:publicclassPrintWriterextendsWriter向文本输出流打印对象的格式化表示形式。此类实现在PrintStream中的所有prin...
有这样一句话:
public class PrintWriter extends Writer向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
这2句话完全看不懂。
1.什么叫对象的格式化表示形式:?!!!
2.什么叫原始字节?!!
3.什么叫未编码的字节流?!!
4.什么叫启动了自动刷新?
5.什么叫平台自有的分隔符概念? 展开
public class PrintWriter extends Writer向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
这2句话完全看不懂。
1.什么叫对象的格式化表示形式:?!!!
2.什么叫原始字节?!!
3.什么叫未编码的字节流?!!
4.什么叫启动了自动刷新?
5.什么叫平台自有的分隔符概念? 展开
1个回答
展开全部
1.所谓的格式化表现形式,指的是PrintWriter 中format(String format, Object... args)和format(Locale l, String format, Object... args) 的字符串格式化方法。详情请参见String.format()的用法。例如,可以将一个double型数据以保留两位小数,前面用0补齐10位这样的格式输出。
如:System.out.println(String.format("%1$,09d", -3123));输出为-0003,123。
2.所谓原始字节,就是byte值,电脑中的数据都是以字节(byte)存在的,一个byte有8位,展现出来就是 0x000000ff 类似这个样子。这个样子是没法直接向PrintWriter 输入的,只能以inputStream的形式输入。
3.这个问题就得和你普及下字节流和字符流的概念了,字节流刚才和你说过了,就是由许多的byte组成的流,它本身不包含任何文字编码。但是要在屏幕上打印出来,就必须编码才行了。比如我们常用的UTF-8编码,还有GBK编码和GB2312编码。编码错误,可是会出乱码的。
4.所谓的自动刷新(flush),就是PrintStream 类的流输入过程中,如果遇到换行符(/n)就会自动打印一行。或者自动向某个输出流输出数据。
5.平台自有的分隔符会根据操作系统和环境的改变而改变,你可以通过System.getProperty("line.separator")方法查询。在format中的替代符号是%n
如:System.out.println(String.format("%1$,09d", -3123));输出为-0003,123。
2.所谓原始字节,就是byte值,电脑中的数据都是以字节(byte)存在的,一个byte有8位,展现出来就是 0x000000ff 类似这个样子。这个样子是没法直接向PrintWriter 输入的,只能以inputStream的形式输入。
3.这个问题就得和你普及下字节流和字符流的概念了,字节流刚才和你说过了,就是由许多的byte组成的流,它本身不包含任何文字编码。但是要在屏幕上打印出来,就必须编码才行了。比如我们常用的UTF-8编码,还有GBK编码和GB2312编码。编码错误,可是会出乱码的。
4.所谓的自动刷新(flush),就是PrintStream 类的流输入过程中,如果遇到换行符(/n)就会自动打印一行。或者自动向某个输出流输出数据。
5.平台自有的分隔符会根据操作系统和环境的改变而改变,你可以通过System.getProperty("line.separator")方法查询。在format中的替代符号是%n
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询