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("哈喽"); ...
随机推荐
- SQL Server安全概念简析
I. 登录名与用户名 登录名: 访问数据库服务器的账户.登录名可以登录到服务器,但不能直接访问数据库内容.数据库连接串中的用户名应配置为登录名.每个登录名的定义存放在master数据库的syslogi ...
- Mono 异步加载数据更新主线程
主要是用 async和 await 调用 RunOnUiThread来更新. 调用函数: //异步加载数据开始 doInBackground (); //异步加载数据开始end protected a ...
- 关于python中文件导入的若干问题
__init__文件 同一级目录下直接import导入就可以了,如果是在不同的目录下面被导入文件的文件夹下面必须有__init__.py文件,即使这个文件是空的也可以.当然这个文件也可以初始一些数据 ...
- logging 日志模块学习
logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...
- php使用mysql和mysqli连接查询数据
mysql: <?php $code = $_POST['code']; $status = ""; $success = ""; $scookies = ...
- oracle 查询执行过的SQL语句
SELECT * FROM v$sqlarea t WHERE t.FIRST_LOAD_TIME between '2016-12-23/16:03:00' and '2016-12-23/16:0 ...
- sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法
去除tab.空格.回车符等使用replace语句 按照ASCII码, SELECT char(64) 例如64 对应 @,则select REPLACE('abc@qq.com',char(64),' ...
- GNS3 桥接虚拟网卡 telnet 实验
网上很多桥接本地网卡的,一直测试不通.无奈,本人桥接vmware 虚拟网卡通! 1: 2: 3:telnet 加密实验 R1(config)#line vt R1(config)#line vty 0 ...
- EBS中OPM成本更新处理流程及对应的表结构、SLA表
OPM成本更新流程: 1.跑实际成本处理 功能作用:计算成本 2.成本更新 功能作用:更新成本 3.OPM会计预处理程序->活动->提交流程 功能作用:是创建会计事件 ...
- js关于页面坐标api
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...