PrintWriter的使用

PrintWriter的使用PrintWriter 的使用 java io PrintWriter 具有自动行刷新的缓冲字符输出流 特点是可以按行写出字符串 并且可以自动行刷新 java io BufferedWrit 是缓冲字符输出流 内部有缓冲区可以进行块写操作提供效率 而 PrintWriter 就是通过连接它实现的缓冲功能 PW 的很多构造方法内部自动连接它 PW 支持两个直接对文件写操作的构造方法

PrintWriter的使用

java.io.PrintWriter

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

java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率,

而PrintWriter就是通过连接它实现的缓冲功能(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("谢谢输入"); } }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199303.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午1:24
下一篇 2026年3月26日 下午1:24


相关推荐

  • linux系统制作qcow2,制作qcow2镜像

    linux系统制作qcow2,制作qcow2镜像准备工作 准备 ISO 源镜像 例如 SLES 11 SP4 DVD x86 64 GM DVD1 iso 准备一台 linux 机器准备 vnc 工具 例如 vncviewer 步骤 1 把 ISO 文件 copy 到 linux 的机器上 并确保硬盘有足够的空间 2 用 qemu 命令创建 qcow2 镜像 例 qemu imgcreate fqcow2 opt image suse11 qcow240G3 用 qem

    2026年3月17日
    2
  • mysql查看版本sql_linux查看mysql版本

    mysql查看版本sql_linux查看mysql版本查询mysql版本(select查mysql版本)2020-07-2411:32:47共10个回答1、通过mysql的-V参数查询版本信息mysql-V2、登录mysql时可以查询版本信息mysql-u用户名-p用户密码3、数据库状态查询版本信息status;4、通过mysql数据库函数查询版本信息selectversion();5、通过version环境变量查询版本信息执行selectvers…

    2022年10月7日
    5
  • thinkphp+ajax 实现点击加载更多数据

    thinkphp+ajax 实现点击加载更多数据

    2021年10月30日
    54
  • jsonobject string转json_string转换为long

    jsonobject string转json_string转换为long本文使用一个小例子展示在java中怎样将一个JSON格式的字符串转化为JSONObject对象。注意,我们使用的是org.json.simple.JSONObject;packagecom.qs.json;importorg.json.simple.JSONObject;importorg.json.simple.parser.JSONParser;importorg.json.sim

    2022年8月23日
    8
  • nginx正向代理概念

    nginx正向代理概念1 正向代理概念正向代理 也就是我们常说的代理 其工作原理为 我访问不了某个网站 但是我能访问一个代理服务器 这个代理服务器他能访问那个我不能访问的网站 于是我连上代理服务器 告诉他我需要那个无法访问网站的内容 代理服务器去取回来之后返回给我 从网站的角度来说只在代理服务器来取内容的时候有一次记录 有时候并不知道是用户的请求 也隐藏了用户的资料 这取决于代理是否告诉网站 总之 正向代理是一个

    2026年3月26日
    3
  • 简述mux vlan的功能及应用场景_vlan的原理

    简述mux vlan的功能及应用场景_vlan的原理MuxVLAN是一种在交换机上的2层隔离技术,基于VLAN实现资源的控制。MuxVLAN技术中包含了主VLAN和辅助VLAN;辅助VLAN分为隔离VLAN和组VLAN。一个主VLAN中可以同时包含多个组VLAN,最多只能包含1个隔离VLAN。同一个组VLAN中的端口可以互相通信,不同组VLAN中的端口无法通信;同一个隔离组中的端口不可以通信;但是隔离VLAN与组VLAN中的端口,都可以与主VLAN中的端口进行通信。简述端口隔离的实现原理端口隔离是一种在

    2022年8月10日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号