Java进阶之旅第十四天(doge
打印流
特点:
- 分类: PrintStream(字节打印流)PrintWriter(字符打印流)
- 1.打印流只操作文件的目的地,不操作数据源
- 2.特有的写出方法可以实现->数据原样写出
- 3.特有的写出方法,可以是实现自动刷新,自动换行
字节打印流(PrintStream
构造方法
构造方法 | 说明 |
---|---|
public PrintStream(OutputStream/File/String s) | 关联字节输出流/文件/文件路径 |
public PrintStream(String fileName,Charset charset) | 指定字符编码 |
public PrintStream(OutputStream out,boolean autoFlush) | 自动刷新 |
public PrintStream(OutputStream out,boolean autoFlush,String encoding) | 指定字符编码且自动刷新 |
成员方法
成员方法 | 说明 |
---|---|
public void write(int b) | 常规方法: 规则跟之前一样,将指定的字节写出 |
public void println(xx) | 打印任意数据,自动刷新,自动换行 |
public void print(xx) | 打印任意数据,不换行 |
public void printf(String format,Object… args) | 带有占位符的打印语句,不换行 |
代码
public static void main(String[] args) throws FileNotFoundException {PrintStream ps = new PrintStream(new FileOutputStream("a.txt",true));//两者底层都是调用FileOutputStream()方法//PrintStream ps2 = new PrintStream("a.txt");//PrintStream ps3 = new PrintStream(new File("a.txt"));//三种打印方法ps.println(97);ps.print(true);ps.printf("\n%s爱上你","小红");//关闭资源ps.close();}
- 结果
97
true
小红爱上你
字符打印流
构造方法
构造方法 | 说明 |
---|---|
public PrintWriter(Write/File/String s) | 关联字符输出流/文件/文件路径 |
public PrintWriter(String fileName,Charset charset) | 指定字符编码 |
public PrintWriter(Write w,boolean autoFlush) | 自动刷新 |
public PrintWriter(Write w,boolean autoFlush,Charset charset) | 指定字符编码且自动刷新 |
成员方法
成员方法 | 说明 |
---|---|
public void write(int b) | 常规方法: 规则跟之前一样,将指定的字节写出 |
public void println(xx) | 打印任意数据,自动换行 |
public void print(xx) | 打印任意数据,不换行 |
public void printf(String format,Object… args) | 带有占位符的打印语句,不换行 |
- 注意:
- 字符打印流底层有缓冲区,需要实现刷新时,必须手动打开
- 区别: 字节打印流底层没有缓冲区,刷新部分可以忽略
代码
public static void main(String[] args) throws IOException {PrintWriter pw = new PrintWriter(new FileWriter("a.txt"));//PrintWriter pw2 = new PrintWriter(new File("a.txt"));/* pw2内部方法* this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),false);*///PrintWriter pw3 = new PrintWriter("a.txt");/*pw3内部方法* this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName))),false);* *///四种打印方法pw.println(97);pw.println("666");pw.print(true);pw.printf("\n%s爱上你","小红");//关闭资源pw.close();}
打印流应用场景
-
控制台输出:打印流是Java标准输出流(System.out)的包装器,提供了方便的打印方法(如print和println),可用于在控制台上打印文本和数据。
-
日志记录:打印流可用于将日志消息输出到文件或其他输出目标。通过将打印流指向文件,可以将日志消息保存到文件中,以便后续分析和调试。
-
文本文件输出:打印流可以用于将文本输出到文本文件。通过将打印流指向文件,可以将文本内容写入文件中,例如生成报告、写入配置文件等。
-
字符串构建:PrintStream 和 PrintWriter 类提供了便捷的方法来将数据格式化为字符串,并将其存储在内存中。这在构建复杂的字符串输出时非常有用,例如生成 HTML、XML 或 JSON 格式的数据。
-
调试和排查问题:打印流是调试和排查问题的常用工具之一。通过将关键变量和调试信息打印到控制台或日志文件中,可以帮助开发人员理解程序执行过程中的状态和行为。