InputStreamReader和BufferedReader
文章目录
- 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相关推荐
- InputStream 、 InputStreamReader 、 BufferedReader区别
区别介绍: 1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. O ...
- InputStream 、 InputStreamReader和BufferedReader
InputStream : 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输出字节流: InputStreamReader : 是字节流与字符流之间的桥梁,能将字节流 ...
- InputStream 、 InputStreamReader 、 BufferedReader
.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputSt ...
- InputStreamReader、BufferedReader输出内容的区别
很早之前写过一个小项目,是关于某个音游自制谱面文件内语法内容错误检查的.昨天回看项目时,发现自己在读取文件时使用了 BufferedReader 而注释掉了 InputStreamReader 所以想 ...
- JAVA读文件类之FileReader/InputStreamReader/BufferedReader
上一篇写了Java写入文件操作,这一篇回顾一下Java读文件操作. Java IO采用reader类来进行文件读取,而且已经提供了三个Reader的实现类,FileReader,InputStream ...
- FileReader FileInputStream InputStreamReader BufferedReader 作用与区别
FileReader FileInputStream InputStreamReader BufferedReader 作用与区别 ava.io下面有两个抽象类:InputStream和Reader ...
- InputStream Reader FileInputStream BufferedReader InputStreamReader FileReader FileInputStream和转换流
原文地址,转发备忘 https://blog.csdn.net/liu940204/article/details/79994467 ava.io下面有两个抽象类:InputStream和Reader ...
- 解決BufferedReader读取UTF-8文件中文乱码(转)
读取txt文件乱码 Java代码 1.BufferedReader read = new BufferedReader(new FileReader(new File(filename))); 解决办 ...
- 02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri
模拟BufferedInputStream,编写一个类 package toto.IO; import java.io.IOException; import java.io.InputStre ...
最新文章
- Loadrunner进行md5加密方法
- Mac下使用Homebrew 安装MySQL
- 为什么做了梦第二天想不起来_为什么做的梦总是想不起来?科学的解释是……...
- 计算机与操作系统小结
- 【292天】跃迁之路——程序员高效学习方法论探索系列(实验阶段50-2017.11.24)...
- 《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型
- CTA策略02_boll
- 一架无人机加入警队4个月,墨西哥小城犯罪率下降了10%
- 瀑布流JavaScript
- 揭秘Spark应用性能调优
- 实验三:从整理上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_21、SpringBoot2.x配置全局异常返回自定义页面...
- 用K-Means聚类分析做客户分群
- 闪存驱动器_什么是闪存驱动器?
- 大家之言 | 谈“网络安全终身教育”
- lack名词形式_lack是什么意思_lack在线翻译_英语_读音_用法_例句_海词词典
- linux进入欢迎界面一直重启,Linux无限重启怎么办
- spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
- 关于安卓视频加水印与剪辑功能实现
- ubuntu 1204 server xp 硬盘安装