java.io.BufferedWriter extends Writer

BufferedWriter:字符缓冲输出流

继承自父类的共性成员方法:
  -void write(int c)写入单个字符

  -void write(char[] cbuf)写入字符数组

  -abstract void write(char[] cubf,int of ,int len)写入字符数组的某一部分,off数组开始索引,len写的字符个数

  -void write(String str)写入字符串

  -void write(String str,int off,int len)写入字符串的某一部分,off字符串开始索引,len写的字符个数

  -void flush()刷新该流的缓冲

  -void close()关闭此流,但要先刷新它

构造方法:

  BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流

  BufferedWriter(Writer out,int sz)创建一个使用给定大小输出缓冲区的新缓冲字符输出流

  参数:

    Writer out :输出流

      我们可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率

    int sz:指定缓冲区的大小,不写默认大小

特有的成员方法:

  void newLine() 写一个行分隔符。会根据不同的操作系统,获取不同的行分隔符

  换行:换行符号

  windows:\r\n

  linux:/n

  mac:/r

使用步骤:

  1.创建字符缓冲输出流对象,构造方法中传递字符输出流

  2.调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中

  3.调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据。刷新到文件中

  4.释放资源

public class Demo03BufferedWriter {
public static void main(String[] args) throws IOException {
// System.out.println(); //newLine()
//1.创建字符缓冲输出流对象,构造方法中传递字符输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("基础语法\\c.txt"));
//2.调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中
for (int i = 0; i <10 ; i++) {
bw.write("老王编程");
// bw.write("\r\n");
bw.newLine();
}
//3.调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据。刷新到文件中
bw.flush(); // 4.释放资源
bw.close();
}
}

java.io.BufferedReader extends Reader

BufferedReader:字符缓冲输入流

继承自父类的共性成员方法:

  int read() 读取单个字符并返回

  int read(char[] cbuf)一次读取多个字符,将字符读入数组

  void close() 关闭该流并释放与之关联的所有资源

构造方法:

  BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流

  BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流

  参数:

    Reader in:字符输入流

      我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲区,提高FileReader的读取效率

  特有的成员方法:

    String readLine() 读取一个文本行。读取一行数据

      行的终止符号:通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行(\r\n)

  返回值:

    包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

使用步骤:

  1.创建字符缓冲输入流对象,构造方法中传递字符输入流

  2.使用字符缓冲输入流对象中的方法read/readLine读取文本

  3.释放资源

public class Demo04BufferedReader {
public static void main(String[] args) throws IOException {
//1.创建字符缓冲输入流对象,构造方法中传递字符输入流
BufferedReader br = new BufferedReader(new FileReader("10_IO\\c.txt")); //2.使用字符缓冲输入流对象中的方法read/readLine读取文本
/*String line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);
line = br.readLine();
System.out.println(line);*/ /*
发下以上读取是一个重复的过程,所以可以使用循环优化
不知道文件中有多少行数据,所以使用while循环
while的结束条件,读取到null结束
*/
String line;
while((line = br.readLine())!=null){
System.out.println(line);
} //3.释放资源
br.close();
}
}

BufferedWniter_字符缓冲输出流和BufferedReader_字符缓冲输入流的更多相关文章

  1. BufferedWriter字符缓冲输出流和BufferedReader字符缓冲输入流

    package com.yang.Test.BufferedStudy; import java.io.BufferedWriter; import java.io.FileWriter; impor ...

  2. java io系列24之 BufferedWriter(字符缓冲输出流)

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_24.html 更多内容请参考:java io系列01之 "目录" Buffere ...

  3. Java-IO之BufferedWriter(字符缓冲输出流)

    BufferedWriter是字符缓冲输出流,继承于Writer,作用是为其他字符输出流添加一些缓冲功能. BufferedWriter主要的函数列表: BufferedWriter(Writer o ...

  4. [19/03/31-星期日] IO技术_四大抽象类_字符流( 字符输入流 Reader、 字符输出流 Writer )(含字符缓冲类)

     一.概念 Reader Reader用于读取的字符流抽象类,数据单位为字符. int read(): 读取一个字符的数据,并将字符的值作为int类型返回(0-65535之间的一个值,即Unicode ...

  5. javaee字符缓冲输出流

    package Zjshuchu; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOExcepti ...

  6. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  7. io基础(字节流、字符流、转换流、缓冲字符流)

    首先需要明确的一点是输入流输出流的输入输出是站在内存的角度看的,读取文件,把文件内容写到内存中,是输入流:写文件,把内存中的数据写到文件中,是输出流. IO操作主要有4个抽象类: 字节输入输出流:In ...

  8. Java之缓冲流(字节/字符缓冲流)

    概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStrea ...

  9. Java-IO之BufferedOutputStream(缓冲输出流)

    BufferedOutputStream是缓冲输出流,继承于FilterOutputStream,作用是为另外一个输出流提供换从功能. 主要函数列表: BufferedOutputStream(Out ...

随机推荐

  1. BigInterger && BigDecimal

    BigInterger BigDecimal

  2. goland设置import规范

    import 规范 引入了三种类型的包,标准库包,第三方包,程序内部包,建议采用如下方式进行组织你的包: 有顺序的引入包,不同的类型采用空格分离, 第一种标准库 第二是第三方包 第三是项目包. 在项目 ...

  3. PyScript:让Python在HTML中运行

    大家好,我是DD,已经是封闭在家的第51天了! 最近一直在更新Java新特性和IDEA Tips两个专栏,其他方向内容的动态关注少了.昨天天晚上刷推的时候,瞄到了这个神奇的东西,觉得挺cool的,拿出 ...

  4. MySQL中的全表扫描和索引树扫描

    引言 在学习mysql时,我们经常会使用explain来查看sql查询的索引等优化手段的使用情况.在使用explain时,我们可以观察到,explain的输出有一个很关键的列,它就是type属性,ty ...

  5. CSAPP 之 AttackLab 详解

    前言 本篇博客将会介绍 CSAPP 之 AttackLab 的攻击过程,利用缓冲区溢出错误进行代码注入攻击和 ROP 攻击.实验提供了以下几个文件,其中 ctarget 可执行文件用来进行代码注入攻击 ...

  6. CMake技术总结

    在做算法部署的过程中,我们一般都是用C++开发,主要原因是C++的高效性,而构建维护一个大型C++工程的过程中,如何管理不同子模块之间的依赖.外部依赖库.头文件和源文件如何隔离.编译的时候又该如何相互 ...

  7. 如何定制.NET6.0的日志记录

    在本章中,也就是整个系列的第一部分将介绍如何定制日志记录.默认日志记录仅写入控制台或调试窗口,这在大多数情况下都很好,但有时需要写入到文件或数据库,或者,您可能希望扩展日志记录的其他信息.在这些情况下 ...

  8. 理“ Druid 元数据”之乱

    vivo 互联网大数据团队-Zheng Xiaofeng 一.背景 Druid 是一个专为大型数据集上的高性能切片和 OLAP 分析而设计的数据存储系统. 由于Druid 能够同时提供离线和实时数据的 ...

  9. 使用 Nocalhost 开发 Rainbond 上的微服务应用

    本文将介绍如何使用 Nocalhost 快速开发 Rainbond 上的微服务应用的开发流程以及实践操作步骤. Nocalhost 可以直接在 Kubernetes 中开发应用,Rainbond 可以 ...

  10. 解决python 导入selenium 库后自动化运行成功但是报错问题

    本章节开始进入自动化的基础教学了,首先我们要对我们的工具有一定的熟练使用程度,做自动化常用的工具一个是搭建 RobotFramework自动化框架,另外一个便是我们最常用的python 工作原理是比较 ...