Java IO ---学习笔记(字符流)
来源:互联网 发布:基于粒子群算法的论文 编辑:程序博客网 时间:2024/05/18 03:27
java.io包中专门用于字符流处理的类,是以 Reader 和 Writer 为基础派生的一系列类。
同类 InputStream 和 OutputStream 一样,Reader 和 Writer 也是抽象类,只提供了一系列用于字符流处理的接口。它们的方法与类 InputStream 和 OutputStream 类似,只不过其中的参数换成字符或字符数组。
我们先来看一看基类 Reader 的方法,其用法与作用都与 InputStream 和 OutputStream,就不做过多的说明了。
Writer 的方法:
InputStreamReader 和 OutputStreamWriter 是 java.io 包中用于处理字符流的最基本的类,用来在字符流和字符流之间作为中介:从字节输入流读入字节,并按编码规范转换为字符;往字节输出流写字符时先将字符按编码规范转换为字节。使用这两者进行字符处理时,在构造方法中应指定一定的平台规范,以便把以字节方式表示的流转换为特定平台上的字符表示。
InputStreamReader(InputStream in); //缺省规范说明//指定规范 encInputStreamReader(InputStream in, String enc);OutputStreamReader(OutputStream out); //缺省规范说明//指定规范 encOutputStreamReader(OutputStream out, String enc);
果读取的字符流不是来自本地时(比如网上某处与本地编码方式不同的机器),那么在构造字符输入流时就不能简单地使用缺省编码规范,而应该指定一种统一的编码规范“ISO 8859_1”,这是一种映射到 ASCCII 码的编码方式,能够在不同平台之间正确转换字符。
InputStreamReader ir = new InputStreamReader(is,"8859_1");
二、缓存流
同样的,为了提高字符流处理的效率,java.io 中也提供了缓冲流 BufferedReader 和 BufferedWrite。其构造方法与 BufferedInputStream 和 BufferedOutPutStream 相类似。另外,除了 read() 和 write() 方法外,它还提供了整行字符处理方法:
- public String readLine():BufferedReader 的方法,从输入流中读取一行字符,行结束标志
\n
、\r
或者两者一起(这是更具系统而定的) - public void newLine():BufferedWriter 的方法,向输出流中写入一个行结束标志,它不是简单地换行符
\n
或\r
,而是系统定义的行隔离标志(line separator)。
看一看例子吧:
import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;public class FileToUnicode { public static void main(String args[]) { try { FileInputStream fis = new FileInputStream("file1.txt"); InputStreamReader dis = new InputStreamReader(fis); BufferedReader reader = new BufferedReader(dis); String s; //每次读取一行,当改行为空时结束 while((s = reader.readLine()) != null){ System.out.println("read:" + s); } dis.close(); } catch(IOException e) { System.out.println(e); } }}
三、其它字符流类
在这里我们就列举一下有哪些类,具体的木木就不再讲解了。
- 对字符数组进行处理: CharArrayReader、CharArrayWrite
- 对文本文件进行处理:FileReader、FileWriter
- 对字符串进行处理:StringReader、StringWriter
- 过滤字符流:FilterReader、FileterWriter
- 管道字符流:PipedReader、PipedWriter
- 行处理字符流:LineNumberReader
- 打印字符流:PrintWriter
- Java IO ---学习笔记(字符流)
- Java IO学习笔记:字符流
- Java IO学习笔记:字符流
- Java IO学习笔记:字符流
- [学习笔记]Java IO之字符流
- [学习笔记]Java IO之字符流
- IO流(字符流)+JAVA学习笔记-DAY21
- 字符流---IO学习笔记(三)
- java学习笔记IO输入与输出——IO字符流(3)
- java学校笔记(IO字符流)
- java笔记-io字符流
- Java学习笔记之IO流中的文件字符流
- Java IO学习笔记之字节流和字符流
- 黑马程序员---java IO-字符流 学习笔记
- Java学习笔记之 IO包 字符流
- Java学习笔记之IO(七):FileReader输入字符流
- Java学习笔记之IO(八):FileWriter输出字符流
- Java IO学习笔记(三):字节流与字符流
- Ubuntu16.04 Caffe 安装步骤记录(超详尽)
- Java IO ---学习笔记(文件流)
- Java IO ---学习笔记(缓冲流)
- Java IO ---学习笔记(数据流)
- Java IO ---学习笔记(标准流、内存读写流、顺序输入流)
- Java IO ---学习笔记(字符流)
- Java IO ---学习笔记(文件操作与随机访问文件)
- 回流(reflow)和重绘(repaint)
- Java ---学习笔记(泛型)
- Tomcat相关知识点总结(jsp)
- wamp phpMyAdmin error #1045
- Vue, App与我(十一)
- Spring Mvc 实例
- 某公司(技术面)