I/O流——字符流
字符流
字节流提供处理任何类型输入/输出操作的足够功能,但不能直接操作Unicode字符,因而需要字符流。
字符流层次结构的顶层是Reader和Writer抽象类。
实际上,字符流的底层就是字节流。
一、Reader
① Reader是定义Java的流式字符输入模式的抽象类。
② Reader抽象类中的方法:
a) public int read(CharBuffer target) throws IOException
b) public int read()
c) public int read(char[] cbuf)
d) public abstract int read(char[] cbuf,int off,int len)
e) public abstract void close()
二、Writer
① Writer是定义流式字符输出的抽象类。
② 该类的方法都返回void值并在出错条件下抛IOException异常。
③ Writer抽象类中方法:
a) public void write(int c)
b) public void write(char[] cbuf)
c) public abstract void write(char[] cbuf,int off,int len)
d) public void write(String str) throws IOException
e) public void write(String str,int off,int len)
f) public Write append(char c)
g) public abstract void flush()
h) public abstract void close()
三、FileReader
① FileReader类表示可以读取文件内容的Reader类。
② 构造方法:
a) FileReader(String filePath)
b) FileReader(File fileObj)
四、 FileWriter
① FileWriter表示可以写文件的Writer类
② 构造方法:
a) FileWriter(String filePath)
b) FileWriter(String filePath,boolean append)
c) FileWriter(File fileObj)
复制文本:
FileReader fr=new FileReader("d:/aa.txt");
FileWriter fw=new FileWriter("d:/c.txt");
char[] buff=new char[100];
int len=0;//实际读到的字符个数
while((len=fr.read(buff))!=-1){
fw.write(buff, 0, len);
//fw.flush();//当最后不释放资源时,且缓冲区(8K)未写满时强制刷新
}
fr.close();
fw.close();//若此处不释放资源,缓冲区未写满,且无刷新语句时,文本将不会被复制进新的文本
五、BufferedReader
① BufferedReader通过缓冲输入提高性能
② 两个构造方法:
a) BufferedReader(Reader inputStream)
b) BufferedReader(Reader inputStream,int bufSize)
六、BufferedWriter
① BufferedWriter通过缓冲输出提高性能
② 两个构造方法:
a) BufferedWriter(Writer outputStream)
b) BufferedWriter(Writer outputStream,int bufSize)
同样做一个复制文本的功能(复制一个多行文本):
FileReader fr=new FileReader("d:/JavaStudy/First.java");
BufferedReader br=new BufferedReader(fr);
FileWriter fw=new FileWriter("d:/abc.java");
BufferedWriter bw=new BufferedWriter(fw);
String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
bw.write(line);
bw.newLine();//换行
//bw.flush();
}
br.close();
bw.close();
I/O流——字符流的更多相关文章
- 【Java基础】【21IO(字符流)&字符流其他内容&递归】
21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写 ...
- java-IO流-字符流-FileReader、FileWriter、自定义小数组的拷贝、BufferedReader、BufferedWriter、readLine()和newLine()方法、LineNumberReader、使用指定的码表读写字符
###21.01_IO流(字符流FileReader) * 1.字符流是什么 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要 ...
- JavaSE18-字节缓冲流&字符流
1.字节缓冲流 1.1 字节缓冲流构造方法 字节缓冲流介绍 BufferOutputStream:该类实现缓冲输出流. 通过设置这样的输出流,应用程序可以向底层输出流写 入字节,而不必为写入的每个字节 ...
- Java IO流字符流简介及基本使用
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有File ...
- IO流---字符流(FileWriter, FileReader ,BufferedWriter,BufferedReader)
IO Input Output IO流用来处理设备之间的数据传输. java对数据的操作是通过流来实现的. 流按流向分:输入流,输出流 是相对内存而言的.把硬盘的数据读取到内存中就是输入 ...
- 1(3)IO流------字符流
一.分类 字节流(不适用于文本) InputStream OutputStream 字符流 Reader Writer 二.字符流 按照字符为单位,英文1-1,中文看是UTF-8编码还是GBK编码 字 ...
- IO流--字符流与字节流--File类常用功能
IO流的常用方法: 1: 文件的读取和写入图解: 2:字节流: 读写文件的方法: 一般效率读取: 读取文件: FileInputStream(); 写数据: Fil ...
- Java IO流-字符流
2017-11-05 18:34:39 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大 ...
- 021.5 IO流——字符流
###############基本功能写 FileWriter fw = new FileWriter("xxx.txt"); fw.write("哈喽"); ...
随机推荐
- Programming in Lua读书笔记
Lua的长处之一就是可以通过新类型和函数来扩展其功能.动态类型检查最大限度允许多态出现,并自动简化调用内存管理的接口,因为这样不需要关心谁来分配内存谁来释放内存,也不必担心数据溢出.高级函数 ...
- logback 配置
logback 配置 logback的配置方式包括:编程配置.XML文件配置.Groovy文件配置.对于使用log4j的用户,还可以通过logback提供的工具( http://logback.qos ...
- MongoDB常用操作
(备注: 对于 window, 不需要sudo) 验证成功与否: * 启动服务器: $sudo mongod --dbpath C:\data\db (需要 指明数据库存放的目录) * 打开shell ...
- MVC之过滤器
1.过滤器 <a>:Authorization 默认实现 AuthorizeAttribute身份验证过滤器,首先运行,在其他过渡器的操作操作方法前执行;<b>:Action ...
- 深入理解CSS溢出overflow & overflow:hidden真的失效了吗[转载]
深入理解CSS溢出overflow http://www.cnblogs.com/xiaohuochai/p/5289653.html overflow:hidden真的失效了吗 http://www ...
- Cordova webapp实战开发(20161207 )
http://www.cnblogs.com/zhoujg/archive/2015/05/28/4534932.html 1.https://www.jetbrains.com/idea/downl ...
- NK3C:关于svg文件使用
我们从 http://iconfont.cn/ 上下载的SVG文件由以下构成,系统中使用的时候请做适当的修改: 1.width.Height:设置为100%: 2.defs模块去掉:(如果不去掉,IE ...
- 艺术品照片融合到背景墙上效果及DEMO
演示地址: 功能:图片按照角度增加阴影,比较复杂的功能就是当墙面是不规则的时候,贴的艺术品必须按照墙面的角度进行变形处理.
- C语言运算符优先级和口诀(转)
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 ...
- 那些年,我们一起追的面试题。。to be continued!!!
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?答:Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件.Java被 ...