PrintWriter and BufferedWriter区别和使用「建议收藏」

PrintWriter and BufferedWriter区别和使用「建议收藏」区别:BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。并且BufferedWriter只能对字符流进行操作。PrintWriter:相对于BufferedWriter的好处在于,如果PrintWriter开启了自动刷新,那么当PrintWri…

大家好,又见面了,我是你们的朋友全栈君。

区别:

BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。并且BufferedWriter只能对字符流进行操作。

PrintWriter:相对于BufferedWriter的好处在于,如果PrintWriter开启了自动刷新,那么当PrintWriter调用println,prinlf或format方法时,输出流中的数据就会自动刷新出去。PrintWriter不但能接收字符流,也能接收字节流。

 

1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串;

2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法;

3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生;

4. PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush);

BufferedWriter方法在录入一段字符后要使用newLine方法进行换行操作。PrintWriter可以开启自动刷新,其中的println方法自带换行操作。所以代码实现起来要比BufferedWriter简单一些。PrintWriter提供println()方法可以写不同平台的换行符,BufferedWriter可以任意设定缓冲大小

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。

BufferedWriter 类

构造方法:bufferedWriter bf = new bufferedWriter(Writer out );

主要方法:void write(char ch);//写入单个字符。

                  void write(char []cbuf,int off,int len)//写入字符数据的某一部分。

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

                  void newLine()//写入一个行分隔符。

                  void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。

                  void close();//关闭此流,在关闭前会先刷新他。

 

 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135130.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 欧姆龙plc编程入门视频教程_plc三菱编程入门基础知识

    欧姆龙plc编程入门视频教程_plc三菱编程入门基础知识plc编程入门视频教程http://i.youku.com/u/UNDQzNjIxMjAw/videos

  • pycharm安装opencv-python_pycharm opencv

    pycharm安装opencv-python_pycharm opencv使用pip安装:pipinstallpython-opencv在网络距离美国较远的情况下,或PIP版本未达到要求的情况下,会install失败。解决方法1.重试2.科学方法,这里说明使用科学方法的端口问题,切记不要和本地计算机使用同一个端口,容易造成Pycharm未知错误。3.手动去官网下载文件这里有两种类型的手动安装文件setup.pyXXXX.whl以上两种文件都可以通过pycharm的命令行工具直接cd到目录进行直接安装。方法:1pyth

  • 最长回文子串 python_最长回文子序列

    最长回文子串 python_最长回文子序列647.回文子串题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例1:输入:”abc”输出:3解释:三个回文子串:”a”,”b”,”c”示例2:输入:”aaa”输出:6解释:6个回文子串:”a”,”a”,”a”,”aa”,”aa”,”aaa”提示:输入的字符串长度不会超过10…

    2022年10月16日
  • 关于苹果审核反馈的17.2

    关于苹果审核反馈的17.2

  • 微信公众平台开发者社区_php微擎框架

    微信公众平台开发者社区_php微擎框架一、思考开发了几个微信项目,一直在思考:如何将微信相关的处理与业务系统联系在一起?如何做到彼此分离,且易于扩展?能否开发一套独立的微信服务框架,支持各种业务应用?二、现有常用的服务框架支持多种业务应用,我们通过分层的方式来实现。将复杂的系统进行分层,将一些功能或者特有的逻辑进行封装,封装为不同的基础服务或中间件。业务层无需关心底层具体实现,只需进行简单调用、组装

  • win10JDK环境变量的配置

    win10JDK环境变量的配置在win10系统下进行jdk环境变量与win7的一些区别,作者踩过一些坑,最后通过网上查找资料才将问题解决,但是网上的资料比较零碎,作者整理一下亲自操作过程并且将步骤详细的写了下来,希望能够帮助需要的人。一、下载安装完成jdk之后,桌面右键此电脑选择属性,进入以下界面,然后选择高级系统设置,进入系统配置二、进入系统配置之后点击环境变量,进入环境变量配置窗口三、此时我们可以看到有用户变量…

发表回复

您的电子邮箱地址不会被公开。

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