一、什么是printwriter?
printwriter是向文本输出流打印对象的格式化表示形式。此类实现在PrintStream中的所有 与PrintStream类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。 此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用checkError()是否出现错误。
二、printwriter的构造方法
| 方法 | 含义 |
| PrintWriter(File file) | 使用指定的文件创建一个没有自动行刷新的 新PrintWriter |
| PrintWriter(File file, String csn) | 使用指定的文件和字符集创建一个没有自动 行刷新的新PrintWriter |
| PrintWriter(File file, Charset charset) | 使用指定的文件和字符集创建一个没有自动 行刷新的新PrintWriter |
| PrintWriter(OutputStream out) | 从现有的OutputStream创建一个没有自动 行刷新的新PrintWriter |
| PrintWriter(OutputStream out, boolean autoFlush) | 从现有的OutputStream创建一个新的 PrintWriter |
| PrintWriter(OutputStream out, boolean autoFlush, Charset charset) | 从现有的OutputStream创建一个新的 PrintWriter |
| PrintWriter(Writer out) | 创建一个新的PrintWriter,没有自动行刷 新 |
| PrintWriter(Writer out, boolean autoFlush) | 创建一个新的PrintWriter |
| PrintWriter(String fileName) | 使用指定的文件名创建一个没有自动行刷新 的新PrintWriter |
| PrintWriter(String fileName, String csn) | 使用指定的文件名和字符集创建一个没有自 动行刷新的新PrintWriter |
| PrintWriter(String fileName, Charset charset) | 使用指定的文件名和字符集创建一个没有自 动行刷新的新PrintWriter |
实例: 追加模式,写一个文件数据
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Practice5 {
public static void main(String[] args) throws IOException {
PrintWriter out = new PrintWriter(new FileWriter("m.txt",true));
out.print("hello");
out.printf("java:%s %tF %<tT%n","io",System.currentTimeMillis());
out.flush();
out.close();
}
}
文件添加行号案例实例:
try(BufferedReader br = new BufferedReader(new
FileReader("user.txt")); PrintWriter out = new PrintWriter(new
FileOutputStream("u2.txt"))) {
String t = "";
int i = 0;
while((t = br.readLine())!=null){
out.printf("%02d、%s%n",++i,t);
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
三、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)写入字符串的某一部分。 |
本文详细介绍了Java中的PrintWriter类,包括它的主要功能——向文本输出流打印对象的格式化表示。讨论了各种构造方法,如从文件、输出流和字符流创建PrintWriter,并展示了如何在不自动刷新的情况下进行操作。此外,还列举了PrintWriter的重要类方法,如append、print、println和format等,用于输出各种类型的数据,并提供了追加文件行号和写入文件的实例代码。
932

被折叠的 条评论
为什么被折叠?



