转载CSDN zsw2zkl 的分享

Java.io包

1)首先先知道它的八种构造方法,但怎么记住这八种呢?我们都知道PrintWriter是一种过滤流,也叫处理流。也就是能对字节流和字符流进行处理,所以它会有:

PrintWriter(OutputStream out)  根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。

PrintWriter(Writer out)  创建不带自动行刷新的新 PrintWriter。

这两种构造方法。由于PrintWriter能够实现自动刷新所以又衍生出另两种:

PrintWriter(OutputStream out, boolean autoFlush)  通过现有的 OutputStream 创建新的 PrintWriter。

PrintWriter(Writer out, boolean autoFlush)  创建新 PrintWriter

true代表能自动刷新。注意这四种均不能指定编码集,但PrintStream中对OutprintStream操作时是可以的。【其中原因我不知,有知道的朋友欢迎指教】。

然后PrintWriter能够直接对文件操作,所以还有这两种构造方法:

PrintWriter(File file) 使用指定文件创建不具有自动行刷新的新 PrintWriter。

PrintWriter(String fileName)  创建具有指定文件名称且不带自动行刷新的新 PrintWriter。

注意该构造方法无法指定能否自动刷新,但可以指定字符集所以又衍生出两种:

PrintWriter(File file, String csn)  创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。

PrintWriter(String fileName, String csn)  创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。

2)熟记这八种构造方法,你可以随心构造你需要的PrintWriter对象了(假如为pw)。那它实现了什么接口呢?

1.Closeable接口, 所以它有pw.close()方法来实现对PrintWriter的关闭。

2.Flushable接口,所以它有pw.flush()方法来实现人为的刷新。

3.Appendable接口,所以它有pw.append(char c)方法来向此输出流中追加指定字符,等价于print().

3)下面就是它的方法。

返回类型为PrintWriter的方法

append(char c)

format(String regex,Object args)以指定格式的字符串和参数写入PrintWriter,我个人认为等同于printf

printf()

返回类型为void的方法

println(Object obj)打印obj,可以是基本数据类型或对象,并换行

print(Object obj)同上,但不换行

write(int i) 写入单个字符i

write(char[] buf)  写入字符数组。

write(char[] buf, int off, int len)  写入字符数组的某一部分。

write(String s) 写入字符串

write(String s, int off, int len)写入字符串的某一部分

个人认为:write()方法与print()方法基本一致 但是write(char[] buf, int off, int len)print()不行。但笔者推荐使用Print系列方法,这正是PrintWriter类的价值所在。

返回类型为boolean类型的方法

checkError() 刷新流并检查其错误状态

4)举例:

import java.io.IOException; import java.io.PrintWriter; import java.io.FileWriter; import java.io.File;
public class PrintWriterDemo {
public static void main(String[] args) { PrintWriter pw = null; String name = "张松伟"; int age = 22; float score = 32.5f; char sex = '男'; try{ pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true); pw.printf("姓名:%s;年龄:%d;性别:%c;分数:%5.2f;", name,age,sex,score); pw.println(); pw.println("多多指教"); pw.write(name.toCharArray()); }catch(IOException e){ e.printStackTrace(); }finally{ pw.close(); } } }

转载于:https://www.cnblogs.com/StanLong/p/6375635.html

学习PrintWriter类相关推荐

  1. 开课吧Java课堂之PrintWriter类的运用

    尽管Java允许用System.out向控制台写数据,但建议仅用在调试程序时或在例题中,对于实际的程序,Java推荐的向控制台写数据的方法是用PrintWriter流.PrintWriter是基于字符 ...

  2. 黑马毕向东Java课程笔记(day20-1——20-17)IO流:File类及相关方法、递归、递归的相关练习、Properties、PrintWriter类与PrintStream类、合并流与切割流

    1.File类概述   File是文件和目录路径名的抽象表示形式. 用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作.   前面说到的"流",它只能操作数据,想 ...

  3. java printwriter实例_Java PrintWriter 类

    Java PrintWriter 类 在本教程中,我们将通过示例来学习Java PrintWriter及其print()和printf()方法. java.io包的PrintWriter类可用于以通常 ...

  4. 如何学习streamdecoder类_如何学习篇5:强化2种能力——2种学习模式之运动类:隐性学习...

    [本文摘要] [注]本文所述内容为学习Yjango<学习观>相关视频之后的总结,观点归Yjango所有,本文仅作为学习之用. 阅读本节,会让你对英语这类运动类知识的学习豁然开朗,你会知道英 ...

  5. java中蛇的属性有哪些_学习Java类的属性

    学习Java类的属性-武汉北大青鸟 Public.private.protected显示了三种类中的属性和服务的类型,public是可以随意访问的.private是外界不能访问的(显示了数据的封装性) ...

  6. 普通话测试软件测分准吗,普通话学习测试类 | 普通话测试APP,能做到测试、学习提高两不误吗?...

    原标题:普通话学习测试类 | 普通话测试APP,能做到测试.学习提高两不误吗? 普通话是如今人们生活的常用语言,但要说到参加普通话测试,如果没有提前了解普通话测试的形式与要求,也不知道自己普通话的起步 ...

  7. 学信息安全买计算机,大学学习计算机类信息安全方向真的很蠢吗?

    大学学习计算机类信息安全方向真的很蠢吗? 本人2018届高考党,目前水平可以上一个不错的211,望借自主招生冲击985院校. 几天前,当我对老师说:"我目前最优先的选择是计算机-信息安全方向 ...

  8. java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  9. Java为枚举类创建成员变量_Java学习——枚举类

    Java学习--枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...

最新文章

  1. jmeter压测_jmeter压测学习2linux运行jmeter环境
  2. 计算机网络知识点3——数据交换(报文交换、分组交换)
  3. java如何转成jar包,修改及反编译可运行Jar包实现过程详解
  4. CTFHUB 《基础认证》:burp使用,basic请求了解
  5. win10 无法连接路由器共享设备 报错0X80004005
  6. 人工智能课程设计报告
  7. python tkinter 实现图片格式批量转换小工具
  8. 指令下载Google网盘数据遇到的无法连接问题
  9. 掉入黑洞会怎样?被拉成面条,还是前往另一个宇宙?
  10. 利用“WinRAR”创建自解压文件
  11. 又一个布局利器, CSS 伪类 :placeholder-shown
  12. 气象历史数据和空气质量历史数据资源汇总免费
  13. 图像特征点、投影变换与图像拼接
  14. 用jquery实现隐藏列表表单的显示关闭切换以及Ajax方式修改提交对应的那一行的修改内容。
  15. 认真CS☀️增量时间—Time.deltaTime Time.fixedDeltaTime
  16. 三聚氰胺,究竟是谁的错?
  17. 青柠日语五十音QuickStart
  18. lldb常用命令与调试技巧
  19. Recurrence along Depth: Deep Convolutional Neural Networks with Recurrent Layer Aggregation
  20. 京东云高可用业务架构建设 | 京东云技术团队

热门文章

  1. ipad开发开发之区别于iphone
  2. JDK1.8 api 中文文档下载
  3. QT_地图导航 源码下载
  4. 站长导航系统源码-修复版
  5. Help!我的数据库坏了,怎么办?
  6. c语言函数参数缺省,C++缺省参数和函数重载
  7. 南邮ctf-异性相吸
  8. 监控系统-3.1自定义告警
  9. 深入了解开源智能家居平台,解决品牌割裂的终极利器?
  10. 所谓IIS500内部服务器错误