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();//关闭此流,在关闭前会先刷新他。

 

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm如何设置字体大小快捷键_ps字体放大缩小快捷键

    pycharm如何设置字体大小快捷键_ps字体放大缩小快捷键一、pycharm字体放大的设置File->setting->Keymap->在搜寻框中输入:increase->IncreaseFontSize(双击)->在弹出的对话框中选择AddMouseShortcut在弹出的对话框中同时按住ctrl键和鼠标滚轮向上滑,点击OK完成设置二、Pycharm字体缩小的设置File->setting->Keymap->在搜寻框中输入:decrease->Decre.

    2022年8月25日
    4
  • java中applet是什么意思_Java Applet与Java Application的区别

    java中applet是什么意思_Java Applet与Java Application的区别在Java语言中,能够独立运行的程序称为Java应用程序(Application)。Java语言还有另外一种程序–Applet程序。Applet程序(也称Java小程序)是运行于各种网页文件中,用于增强网页的人机交互、动画显示、声音播放等功能的程序。JavaApplet和JavaApplication在结构方面的主要区别表现在:(1)运行方式不同。JavaApplet程序不能单独运行,它必…

    2022年7月8日
    21
  • RT-Thread零基础快速入门第7讲——FinSH控制台「建议收藏」

    RT-Thread零基础快速入门第7讲——FinSH控制台「建议收藏」目录一、前言源码链接二、FinSH控制台使用方法第一步:配置FinSH第二步:烧录程序并把串口连接到PC端第三步:打开xshell或者串口助手第四步:测试FinSH命令三、自定义FinSH命令自定义msh命令自定义C-Style命令和变量自定义命令重命名四、项目实战五、结束语一、前言本来我是打算先讲完RT-thread的内核,再讲设备和组件,但是考虑到后面很多地方都会用到FinSH控制台…

    2022年5月21日
    33
  • java 单例模式 —饿汉式懒汉式

    java 单例模式 —饿汉式懒汉式目录单例设计模式饿汉式懒汉式饿汉式vs懒汉式结语单例设计模式所谓单例设计模式,就是采取一定的方法在整个软件系统中,对某个类只能存在一个对象实例1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。饿汉式饿汉式:在程序启动或单例模式类被加载的时候,单例模式实例就已经被创建。上例子!packagecom.happy.demo;publicclassSingleton…

    2022年7月25日
    6
  • Mybatis笔记(2)

    Mybatis笔记(2)

    2021年11月11日
    44
  • linux内核编程入门篇_linux内核编程入门

    linux内核编程入门篇_linux内核编程入门Linux内核编程实战经验谈李艳彬01-7-27上午10:45:17当前,在国产自主版权的操作系统这面大旗

    2022年10月8日
    0

发表回复

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

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