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("哈喽"); ...
随机推荐
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- RabbitMQ(六)
集群 以两台机器为例: 10.10.43.207 10.10.244.244 分别安装好 rabbitmq,之后 1.修改集群机器 erlang 的 cookie 2.修改两台机器的 hosts 3. ...
- 统计在从1到n的正整数中1出现的次数
问题: 给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数. 例如:N= 2,写下1,2.这样只出现了1个“1”. N= 12,我们会写下1, 2, 3, 4, ...
- AES加密算法实现
AES算法是一种对称加密算法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准. 下文实例中,密钥采用了直接写死的方式,实际使用中可以配合RSA加密算法加密密钥,从而达到更好的安全效 ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
- c代码读取目录信息
#include <stdio.h> #include <sys/types.h> #include <dirent.h> int main(void) { DIR ...
- Maven 笔记
maven DOS 打包命令:maven项目 cd 进入项目根目录执行 mav clean package;
- 通过SQL Server 2008数据库复制实现数据库同步备份
SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主 ...
- Caffe应用篇----文件格式转换
网友文章: 我们手中有的一般都是图片数据,jpg.bmp格式等,但caffe常使用的数据是db格式(leveldb/lmdb),因此首先我们要将自己数据转换成caffe可运行的格式文件.别捉鸡,caf ...
- QRCode二维码生成
pom配置 <dependency> <groupId>com.github.cloudecho</groupId> <artifactId>qrcod ...