文章目录

  • 1.InputStream 、OutPutStream
  • 2.InputStreamReader、OutputStreamReader
  • 3.BufferedReader、BufferWriter

1.InputStream 、OutPutStream

InputStream 和 OutPutStream是处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般使用它的子类,如FileInputStream等;
OutPutStream是字节输出流的所有类的超类

2.InputStreamReader、OutputStreamReader

InputStreamReader和OutputStreamReader是处理字符流的超类
InputStreamReader是字节流通向字符流的桥梁,它将字节转换为字符流。
OutputStreamReader是字符流向字节流的桥梁,它将字节转换为字节流。

3.BufferedReader、BufferWriter

(1) BufferedReader所属类库:
     java.lang.Object
          java.io.Reader
                java.io.BufferedReader
BufferedReader提供缓冲方式读取文本,readLine()读取一个文本行,从字符输入流中读取文本,缓冲各个文本,从而提供字符,数组和行的高效读取。
(2) BufferedWriter类由Writer类扩展而来,提供通用的缓冲方式写入文本,newLine()使用平台自己的行分隔符,将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
(3)通过 Bufferedreader 捕获从键盘所输入的语句

  public static void main(String[] args) throws IOException{InputStreamReader input = new InputStreamReader(System.in);BufferedReader read=new BufferedReader(input);System.out.print(read.readLine());}

(4)通过BufferedWriter向文件写入字符串,通过try-with-resources来声明和创建输入输出流,从而在使用后可以自动关闭。

import java.io.*;public class project1 { public static void main(String [] args) throws IOException{String path="D:\\相片\\新建文本文档.txt";File file=new File(path);     try(OutputStreamWriter writer=new OutputStreamWriter(new FileOutputStream(file),"UTF-8")   ){BufferedWriter bufferedWriter=new BufferedWriter(writer);bufferedWriter.write("你是谁?从哪来?到哪去?");bufferedWriter.flush();}            }}

使用BufferedWriter 将内容写入文件,先开始少了wriite.flush()这句,发现无法写入内容。查资料后发现,原来BufferedWriter是缓冲输入流,意思是当你调用BufferedWriter的write方法时候。数据是先写入到缓冲区里,并没有直接写入到目的文件里。你必须调用BufferedWriter的flush()方法。这个方法会刷新一下该缓冲流,也就是会把数据写入到目的文件里。

(5)通过BufferedReader 读取文件

import java.io.*;public class project1 { public static void main(String [] args) throws IOException{String path="D:\\相片\\新建文本文档.txt";File file=new File(path);try(InputStreamReader read = new InputStreamReader(new FileInputStream(file),"UTF8");BufferedReader bufferedReader = new BufferedReader(read);){String line = null;while ((line = bufferedReader.readLine()) != null) {           System.out.println(line);}}}

(6)读取和写入实例

package test;import java.io.*;
import java.util.Scanner;public class project1 {    public static void main(String[] args) throws IOException{int count=0;String line;File file=new File("D:\\相片\\新建文本文档.txt");try(OutputStreamWriter writer=new OutputStreamWriter(new FileOutputStream(file));BufferedWriter buffer=new BufferedWriter(writer);){buffer.write("好好学习\n");buffer.write("天天向上\n");buffer.write("报效祖国\n");buffer.write("报效天下");buffer.newLine();    //换行buffer.write("精忠报国");buffer.newLine();buffer.write("天天向上");buffer.flush();}try(InputStreamReader read=new InputStreamReader(new FileInputStream(file));BufferedReader buffer=new BufferedReader(read);){      while((line=buffer.readLine())!=null) {count++;     if(line.contains("报效"))System.out.println(line+"   这行包含了\"报效\"");elseSystem.out.println(line);}System.out.println("这个文件一共有"+count+"行");}}
}

InputStreamReader和BufferedReader相关推荐

  1. InputStream 、 InputStreamReader 、 BufferedReader区别

    区别介绍: 1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. O ...

  2. InputStream 、 InputStreamReader和BufferedReader

    InputStream : 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输出字节流: InputStreamReader : 是字节流与字符流之间的桥梁,能将字节流 ...

  3. InputStream 、 InputStreamReader 、 BufferedReader

    .InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputSt ...

  4. InputStreamReader、BufferedReader输出内容的区别

    很早之前写过一个小项目,是关于某个音游自制谱面文件内语法内容错误检查的.昨天回看项目时,发现自己在读取文件时使用了 BufferedReader 而注释掉了 InputStreamReader 所以想 ...

  5. JAVA读文件类之FileReader/InputStreamReader/BufferedReader

    上一篇写了Java写入文件操作,这一篇回顾一下Java读文件操作. Java IO采用reader类来进行文件读取,而且已经提供了三个Reader的实现类,FileReader,InputStream ...

  6. FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

    FileReader FileInputStream InputStreamReader BufferedReader 作用与区别 ava.io下面有两个抽象类:InputStream和Reader ...

  7. InputStream Reader FileInputStream BufferedReader InputStreamReader FileReader FileInputStream和转换流

    原文地址,转发备忘 https://blog.csdn.net/liu940204/article/details/79994467 ava.io下面有两个抽象类:InputStream和Reader ...

  8. 解決BufferedReader读取UTF-8文件中文乱码(转)

    读取txt文件乱码 Java代码 1.BufferedReader read = new BufferedReader(new FileReader(new File(filename))); 解决办 ...

  9. 02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri

     模拟BufferedInputStream,编写一个类 package toto.IO; import java.io.IOException; import java.io.InputStre ...

最新文章

  1. Loadrunner进行md5加密方法
  2. Mac下使用Homebrew 安装MySQL
  3. 为什么做了梦第二天想不起来_为什么做的梦总是想不起来?科学的解释是……...
  4. 计算机与操作系统小结
  5. 【292天】跃迁之路——程序员高效学习方法论探索系列(实验阶段50-2017.11.24)...
  6. 《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型
  7. CTA策略02_boll
  8. 一架无人机加入警队4个月,墨西哥小城犯罪率下降了10%
  9. 瀑布流JavaScript
  10. 揭秘Spark应用性能调优
  11. 实验三:从整理上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换...
  12. 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
  13. 用K-Means聚类分析做客户分群
  14. 闪存驱动器_什么是闪存驱动器?
  15. 大家之言 | 谈“网络安全终身教育”
  16. lack名词形式_lack是什么意思_lack在线翻译_英语_读音_用法_例句_海词词典
  17. linux进入欢迎界面一直重启,Linux无限重启怎么办
  18. spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
  19. 关于安卓视频加水印与剪辑功能实现
  20. ubuntu 1204 server xp 硬盘安装

热门文章

  1. LocalDateTime的json格式化问题
  2. 实用 JVM 参数总结
  3. 影响拼多多店铺流量的五大指标你知道多少?
  4. Study_microblog笔记Part 3--web表单
  5. 【Python】读取CSV文件画箱线图
  6. 用Java写一个特效元旦代码
  7. 根据编号取得完整名称。
  8. 如何以正文方式正确发送简历?
  9. 台式电脑怎么调出计算机,台式电脑显示器不亮该怎么办 台式电脑显示器不亮的解决方法【图文】...
  10. 运维面试精选:3、Docker面试题