PrintWriter的使用
java.io.PrintWriter

具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。

java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率,而PrintWriter就是通过连接它实现的缓冲功能(PW的很多构造方法内部自动连接它)。

PW支持两个直接对文件写操作的构造方法:

  • PrintWriter(File f)传文件名
  • PrintWriter(String s)传路径

以上两种方法都支持一个重载,就是再传入一个参数

  • 允许我们制定写出字符时的字符集。
  • PrintWriter给人一种可以直接对文件进行操作的假象
  • PW是一个高级流
  • 实际上PW包装了字节流、字符流和字符缓冲流。
  • PW负责自动行刷新
  • bw负责提高效率
  • osw负责读字符
  • fos负责写字节
  • 最后PW能够按行很快地把一个字符串变成字节写在文件中

代码展示如下所示:


import java.io.IOException;
import java.io.PrintWriter;/**
* java.io.PrintWriter
* 具有自动行
* @author 小明
*
*/
public class PWDemo {public static void main(String[] args) throws IOException {/**
* PW支持两个直接对文件写操作的构造方法:
* PrintWriter(File f)传文件名
* PrintWriter(String s)传路径
* PrintWriter给人一种可以直接对文件进行操作的假象
* PW是一个高级流
* 实际上PW包装了字节流、字符流和字符缓冲流。
* PW负责自动行刷新
* bw负责提高效率
* osw负责读字符
* fos负责写字节
* 最后PW能够按行很快地把一个字符串变成字节写在文件中
*/PrintWriter pw = new PrintWriter("pw.txt");pw.println("飞雪连天射白鹿");
pw.println("金庸小说我都爱看");
System.out.println("写出完毕!");
pw.close();
}
}import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;public class PWDemo2 {public static void main(String[] args) throws IOException {/**
* 使用流连接形式向文件中写出字符串
*/
//    FileOutputStream fos = new FileOutputStream("pw2.txt");
//
//    OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
//
//    BufferedWriter bw = new BufferedWriter(osw);
//
//    PrintWriter pw = new PrintWriter(bw);PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("pw2.txt")
, "UTF-8")
)
);pw.println("你好");
pw.println("我不好");
pw.close();}}缓冲字符流中所有构造方法中第一个参数都是Reader或Writer对象。代码展示如下所示:
PrintWriter创建时如果有参数true时,会有行刷新。PrintWriter调用println()方法有行刷新。当创建PW时第一个参数为一个流时,
* 那么久可以再传入一个boolean值类型的参数,
* 若该值为true,那么当前PW久具有自动行刷新的功能,
* 即:每当使用println方法写出一行字符串后就会自动调用flush
* 注:使用自动行刷新可以提高写出数据的即时性,
* 但是由于会提高写出次数,必然会导致写效率降低。package io;import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;/**
* 完成简易记事本功能
* 程序启动后要求输入文件名,然后对该文件写操作。
* 之后输入的每一行字符串都按行写入到该文件中。
* 当输入“exit"是程序退出。
*
* 使用PW完成该功能,并且自行使用流连接完成。
*
* @author 小明
*
*/
public class Note {public static void main(String[] args) throws IOException, FileNotFoundException{Scanner reader = new Scanner(System.in);
System.out.println("请输入文件名:");
String filename = reader.nextLine();PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(filename),"UTF-8"
)
),true
);
System.out.println("请开始输入内容");
while(true)
{String line = reader.nextLine();
/**
* 当创建PW时第一个参数为一个流时,
* 那么久可以再传入一个boolean值类型的参数,
* 若该值为true,那么当前PW久具有自动行刷新的功能,
* 即:每当使用println方法写出一行字符串后就会自动调用flush
* 注:使用自动行刷新可以提高写出数据的即时性,
* 但是由于会提高写出次数,必然会导致写效率降低。
*/
if("exit".equals(line))
{break;
}
//pw.write(line);
pw.println(line);
//pw.flush();
}
pw.close();
System.out.println("谢谢输入");
}}

PrintWriter相关推荐

  1. java printwriter format_Java的格式化输出

    在JavaSe5中,推出了C语言中printf()风格的格式化输出.这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力.今天,我们开始学习Java中的格式化输出 ...

  2. BufferedReader和PrintWriter读写中文的问题

    最近用BufferedReader读一个文本文件,然后再将读出的内容用PrintWriter写入到另外一个新的文件中. 之前一直没有发现这个问题,就是如果文本内容中有中文,在读出的内容和写入的内容都会 ...

  3. PrintWriter用法简析

    public class PrintWriterextends Writer 向文本输出流打印对象的格式化表示形式.此类实现在 PrintStream 中的所有 print 方法.它不包含用于写入原始 ...

  4. JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

    一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有 ...

  5. org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)

    问题:创建spring boot项目时, pom.xml报错org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)问题 ...

  6. pom.xml错误:org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)的解决方法

    pom.xml错误:org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)的解决方法 参考文章: (1)pom.xml ...

  7. Java-Java I/O流解读之java.io.PrintStream java.io.PrintWriter

    概述 示例 代码 概述 JavaI/O流分为两类,字节流和字符流. 字节流是指InputStream/OutputStream及其子类, 字符流是指Reader/Writer及其子类. 这两类I/O流 ...

  8. java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据

    java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据 PrintWriter(String filename); PrintWriter(File file);<!-- ...

  9. PrintWriter和Scanner的综合运用写文件并读文件

    下用PrinterWriter写入文件,再用Scanner读文件输出 package textfile; import java.io.*; import java.util.*; public cl ...

  10. JspWriter与PrintWriter的关系

    一.JspWriter与PrintWriter的关系: 1.都是继承自java.io.Writer类. JspWriter可以在JSP页面中直接用out对象输出.可以用pageContext.getO ...

最新文章

  1. DataFrame 拼接,筛选,修改
  2. 没事试试50mm1.4
  3. mysql如果带有换行的处理方式
  4. C. Goodbye Souvenir(CDQ 或 树套树)
  5. linux终端怎么设置monaco,Monaco Editor 使用指南
  6. c++ linux 获取毫秒_Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  7. Java基础知识点复习知识点(一)变量,流程控制,数组
  8. 北斗心脏——高精度时间频率系统
  9. java运行 .class文件_运行java的class文件方法详解
  10. 台式计算机把光驱改成硬盘,笔记本电脑光驱怎么改换硬盘?笔记本光驱改装固态硬盘图文教程...
  11. Java工程师成神之路
  12. Istio入坑指南(二) Istio的安装与简单的使用
  13. 高新计算机考试试题ps,最新版计算机高新考试ps第1单元1-8.pdf
  14. element表格样式优化
  15. python编写一个汽车类_Python 类:以汽车为例
  16. 3月23—3月27日三年级课程
  17. [机缘参悟-34]:光锥之内皆命运
  18. Java实现TCP/IP的ping连通性
  19. 音效codec芯片解决方案
  20. Java空字符串和null

热门文章

  1. Android——一个简单的学生管理系统
  2. dtsi与dts_RK3288 dts和dtsi介绍
  3. LIME算法:图像分类解释器(代码实现)
  4. Jmeter接口测试+参数化
  5. Cromwell +WDL学习
  6. edge浏览器 开启java_如何让你的Edge浏览器跑得更快?几个步骤解放它!
  7. Syncd: 一款Go语言开发的开源自动化部署工具
  8. C# NanoFramework 开发单片机嵌入式之 ESP32
  9. 数字化需要授之以渔,Azure 动手实验营在等你
  10. 活动预告 | 谷歌开发者大会明日开启