大家好,又见面了,我是你们的朋友全栈君。
代码语言:javascript复制public class PrintWriterextends Writer
向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream
中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
与 PrintStream
类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。
此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError()
是否出现错误。
构造方法表
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类的方法表
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) 写入字符串的某一部分。 |
PrintWriter类用法,代码示例:
代码语言:javascript复制 1 import java.io.BufferedReader;
2 import java.io.FileInputStream;
3 import java.io.FileNotFoundException;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.io.InputStreamReader;
8 import java.io.OutputStream;
9 import java.io.PrintWriter;
10
11
12 public class javaTest {
13
14 public static void main(String[] args) throws IOException {
15 /*
16 * 创建输出流,将信息写入指定的文件中
17 */
18 OutputStream os=new FileOutputStream("C:\Users\qinghuang\Desktop\io1.txt");
19 PrintWriter pw=new PrintWriter(os);
20 pw.write("小帅哥");
21 pw.append(" 你真帅~");
22 pw.println("我稀罕你");
23 pw.write("我爱你");
24 //输出流需要在读取之前关闭保存
25 pw.close();
26 os.close();
27
28 /*
29 * 创建输入流,将信息读到控制台
30 */
31 InputStream is=new FileInputStream("C:\Users\qinghuang\Desktop\io1.txt");
32 InputStreamReader isr=new InputStreamReader(is);
33 BufferedReader br=new BufferedReader(isr);
34
35 String info=null;
36 info=br.readLine();
37 while(info!=null){
38 System.out.println(info);
39 info=br.readLine();
40 }
41 br.close();
42 isr.close();
43 is.close();
44 }
45 }
运行结果:
1 小帅哥 你真帅~我稀罕你 2 我爱你
io2.txt文档中为:
小帅哥 你真帅~我稀罕你 我爱你
分析:从上述的代码实现中可以看出,PrintWriter类对象的write()、print()、append()方法实现最后结果相同,只是在调用的时候其返回值有所不同,可根据需要进行灵活的选择,其他没有看出有什么不同。(这个结论通过查询jdk api文档和程序测试得来的)。另一个注意:一般I/O流的输入方和输出方的类是成对出现的,但是PrintWriter不是,并没有与之对应的类。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155304.html原文链接:https://javaforall.cn