PrintWriter
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相关推荐
- java printwriter format_Java的格式化输出
在JavaSe5中,推出了C语言中printf()风格的格式化输出.这不仅使得控制输出的代码更加简单,同时也给与Java开发者对于输出格式与排列更大的控制能力.今天,我们开始学习Java中的格式化输出 ...
- BufferedReader和PrintWriter读写中文的问题
最近用BufferedReader读一个文本文件,然后再将读出的内容用PrintWriter写入到另外一个新的文件中. 之前一直没有发现这个问题,就是如果文本内容中有中文,在读出的内容和写入的内容都会 ...
- PrintWriter用法简析
public class PrintWriterextends Writer 向文本输出流打印对象的格式化表示形式.此类实现在 PrintStream 中的所有 print 方法.它不包含用于写入原始 ...
- JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流
一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有 ...
- org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
问题:创建spring boot项目时, pom.xml报错org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)问题 ...
- 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 ...
- Java-Java I/O流解读之java.io.PrintStream java.io.PrintWriter
概述 示例 代码 概述 JavaI/O流分为两类,字节流和字符流. 字节流是指InputStream/OutputStream及其子类, 字符流是指Reader/Writer及其子类. 这两类I/O流 ...
- java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据
java.io,PrintWriter可以用来创建一个文件并向本文文件写入数据 PrintWriter(String filename); PrintWriter(File file);<!-- ...
- PrintWriter和Scanner的综合运用写文件并读文件
下用PrinterWriter写入文件,再用Scanner读文件输出 package textfile; import java.io.*; import java.util.*; public cl ...
- JspWriter与PrintWriter的关系
一.JspWriter与PrintWriter的关系: 1.都是继承自java.io.Writer类. JspWriter可以在JSP页面中直接用out对象输出.可以用pageContext.getO ...
最新文章
- DataFrame 拼接,筛选,修改
- 没事试试50mm1.4
- mysql如果带有换行的处理方式
- C. Goodbye Souvenir(CDQ 或 树套树)
- linux终端怎么设置monaco,Monaco Editor 使用指南
- c++ linux 获取毫秒_Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
- Java基础知识点复习知识点(一)变量,流程控制,数组
- 北斗心脏——高精度时间频率系统
- java运行 .class文件_运行java的class文件方法详解
- 台式计算机把光驱改成硬盘,笔记本电脑光驱怎么改换硬盘?笔记本光驱改装固态硬盘图文教程...
- Java工程师成神之路
- Istio入坑指南(二) Istio的安装与简单的使用
- 高新计算机考试试题ps,最新版计算机高新考试ps第1单元1-8.pdf
- element表格样式优化
- python编写一个汽车类_Python 类:以汽车为例
- 3月23—3月27日三年级课程
- [机缘参悟-34]:光锥之内皆命运
- Java实现TCP/IP的ping连通性
- 音效codec芯片解决方案
- Java空字符串和null