PrintStream and PrintWriter
Updated:
转:http://blog.csdn.net/zsw2zkl/article/details/7209734
PrintStream
PrintStream在OutputStream基础之上提供了增强的功能,即可以方便地输出各种类型的数据(而不仅限于byte型)的格式化表示形式。PrintStream的方法从不抛出IOEceptin
PrintWriter
PrintWriter提供了PrintStream的所有打 印方法,其方法也从不抛出IOException。
与PrintStream的区别:
作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream类型的字节流,还能够封装Writer类型的字符输出流并增强其功能。
实例:复制文件。
1 | import java.io.*; |
如果将上面的PrintWriter换成PrintStream会报错,因为PrintStream只能封装字节流,不能封装Writer类对象。
注:如果对输出流的格式有特殊要求,使用 PrintStream, PrintWriter显然会比较方便,详细可以产看Java API文档。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
构造方法摘要
PrintWriter(File file)
使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName)
创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out)
创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
创建新 PrintWriter。
方法摘要
PrintWriter
append(char c)
将指定字符添加到此 writer。
PrintWriter
append(CharSequence csq)
将指定的字符序列添加到此 writer。
PrintWriter
append(CharSequence csq, int start, int end)
将指定字符序列的子序列添加到此 writer。
boolean checkError()
如果流没有关闭,则刷新流且检查其错误状态。
protected void clearError()
清除此流的错误状态。
void close()
关闭该流并释放与之关联的所有系统资源。
void flush()
刷新该流的缓冲。
PrintWriter
format(Locale l, String format, Object... args)
使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
PrintWriter
format(String format, Object... args)
使用指定格式字符串和参数将一个格式化字符串写入此 writer 中。
void print(boolean b)
打印 boolean 值。
void print(char c)
打印字符。
void print(char[] s)
打印字符数组。
void print(double d)
打印 double 精度浮点数。
void print(float f)
打印一个浮点数。
void print(int i)
打印整数。
void print(long l)
打印 long 整数。
void print(Object obj)
打印对象。
void print(String s)
打印字符串。
PrintWriter
printf(Locale l, String format, Object... args)
使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
PrintWriter
printf(String format, Object... args)
使用指定格式字符串和参数将格式化的字符串写入此 writer 的便捷方法。
void println()
通过写入行分隔符字符串终止当前行。
void println(boolean x)
打印 boolean 值,然后终止该行。
void println(char x)
打印字符,然后终止该行。
void println(char[] x)
打印字符数组,然后终止该行。
void println(double x)
打印双精度浮点数,然后终止该行。
void println(float x)
打印浮点数,然后终止该行。
void println(int x)
打印整数,然后终止该行。
void println(long x)
打印 long 整数,然后终止该行。
void println(Object x)
打印 Object,然后终止该行。
void println(String x)
打印 String,然后终止该行。
protected void setError()
指示已发生错误。
void write(char[] buf)
写入字符数组。
void write(char[] buf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
void write(String s)
写入字符串。
void write(String s, int off, int len)
写入字符串的某一部分。