Java基础--------(7)IO流Reader和Writer
来源:互联网 发布:网络语芭比是什么意思 编辑:程序博客网 时间:2024/05/18 03:02
一、简述
Reader和Writer是专门用于读写字符流的抽象类。
Writer和Reader有许多子类,且子类肯定重写了父类的write或者read的方法。
字节流处理单元为1个字节, 操作字节和字节数组。
与字节流不同的是,字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。
字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。
所以可以通过使用Reader和Writer类向使用其他类型的流以及字符串进行输入和输出。
二、转换流
想要通过Reader和Writer对流进行输入输出,必定需要实现两种流的转换。
InputStreamReader:将字节输入流转换成字符输入流。
OutputStreamWriter:将字节输出流转换成字符输出流。
字符,首先要考虑的就是编码问题,所以,转换流有个重要的功能就是能设置编码,构造函数第二个参数传入对应编码。new OutputStreamWriter(out,”utf-8”)
三、字符流对象
1.BufferedReader 和 BufferedWriter
可以按行读写的缓冲输入输出流
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class BufferedReaderDemo { public static void main(String[] args) { InputStreamReader isr = null; OutputStreamWriter osr = null; BufferedReader br = null; BufferedWriter bw = null; try { File bwtxt = new File("."+File.separator+"bw.txt"); if(!bwtxt.exists()) bwtxt.createNewFile(); File brtxt = new File("."+File.separator+"bw.txt"); if(!brtxt.exists()) brtxt.createNewFile(); osr = new OutputStreamWriter(new FileOutputStream(bwtxt),"utf-8");//设置编码 isr = new InputStreamReader(new FileInputStream(brtxt),"utf-8"); bw = new BufferedWriter(osr); bw.write("哈哈哈哈哈哈 22222");//写入字符串 bw.newLine();//根据对应操作平台,插入换行符 bw.write("啊啊啊啊啊啊啊\n啊啊啊啊啊啊啊啊啊啊啊啊\n啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"); bw.flush();//刷新流 br = new BufferedReader(isr); int i=0; while(br.read()!=-1){ System.out.println(br.readLine());//读取一行,没有数据为null i++; } isr.close(); osr.close(); } catch (Exception e) { e.printStackTrace(); } }}
2.CharArrayWriter和CharArrayReader
CharArrayReader的作用就是把字符数组作为源读取
import java.io.CharArrayReader;import java.io.CharArrayWriter;import java.io.IOException;import java.util.Arrays;public class CharArrayReaderDemo { public static void main(String[] args) { try { CharArrayWriter caw = new CharArrayWriter(); caw.write("123哈啊哈哈123"); CharArrayReader car = new CharArrayReader(caw.toCharArray()); char[] cbuf = new char[100]; car.read(cbuf); System.out.println(Arrays.toString(cbuf)); } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Java基础--------(7)IO流Reader和Writer
- Java IO 字符流 Reader和Writer
- Java IO(十二):Reader 和 Writer
- Java-IO之字符输入输出流(Reader和Writer)
- java IO Reader Writer
- Java IO - Reader&Writer
- 4 Java IO:Reader 和 Writer
- JAVA 的IO操作(三) 字符输出流和输入流:Writer和Reader
- Java - IO - 字符流 - Writer - Reader
- java IO笔记(Reader/Writer)
- Java基础----Reader、Writer
- 学习笔记之java.io包中的字符流(上)—— Reader和Writer
- java io (四) Reader Writer
- Java IO reader and writer
- Java IO之Reader/Writer
- JAVA IO系列----FileInputStream和FileOutputStream类,Reader和Writer
- 黑马程序员——java基础 io 流 四个基类InputStream,OutputStream,Reader,Writer
- java中级-7-IO流知识点串讲(1)-IO流概念及字符流Writer、Reader
- Java多线程中线程的几种状态
- 号外 号外 博客搬家了
- 第一章
- 将文件存储到MySQL
- Python 错误和异常小结
- Java基础--------(7)IO流Reader和Writer
- 难点统计——剑指offer与金典
- 第二篇. 操作系统之 进程与线程
- 罕见bug解决办法: kienct 1代运行错误Failed to claim camera interface: LIBUSB_ERROR_NOT_FOUND
- 【bzoj1797】[Ahoi2009]Mincut 最小割
- Android绘图基础——仿华为加载动画
- 阿里云服务器 ECS 访问不了公网 ip 可能的原因及解决方法
- 十大算法之朴素贝叶斯
- 嵌入式OS入门笔记-以RTX为案例:三.初探进程