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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ASSERT_VALID(pDoc)分析

    ASSERT_VALID(pDoc)分析这个宏都是MFC的调试宏.ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。事实上,

    2022年7月3日
    35
  • asp.net(c#)网页跳转七种方法小结

    asp.net(c#)网页跳转七种方法小结①response.redirect这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录

    2022年7月4日
    24
  • Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

    Spring 中拦截器(Interceptor)与过滤器(Filter)的区别Spring 中拦截器(Interceptor)与过滤器(Filter)的区别

    2022年4月23日
    54
  • 五子棋 人机对战 思路「建议收藏」

    五子棋 人机对战 思路「建议收藏」五子棋之人机对战思路:1,棋盘与棋子的实现2,玩家下完棋后,计算机要根据当前玩家所下的棋子找出最佳下棋点3,输赢的判断之前已经把人人对战的大概方法实现了,接下要实现的是人机的对战。我的思路如下(当然只是思路哈~还没具体实现呢):其实人机对战就是就在我们下完一步起后,通过电脑分析下一步该走哪,对此做出判断并在最佳的位置上出棋。1,首先需要定义权值,我做…

    2022年6月17日
    66
  • 二级公共基础知识总结笔记[通俗易懂]

    二级公共基础知识总结笔记[通俗易懂]二级公共基础知识总结下个学期就要开始我的计算机双学位就读了。在此之前,我打算先考几个证来过渡一下,像二级的C、C++、VB、Java、Python、Office都考一下。其中我比较熟悉的只有C和Python,其他的编程语言就要自己突击一下了。3月我报的是C、C++和VB。为此还买了几本书。这里总结一下考点,做一下笔记。之后书就不重要了,可以丢了。再刷一些题目,做一些记录就可以了。开始笔记吧。…

    2022年5月3日
    52
  • Python学习–02输入和输出、运算符

    Python学习–02输入和输出、运算符

    2022年2月23日
    39

发表回复

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

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