javaio流和异常处理
流
大体上是一个连续得数据流 ,可以从流中读取数据,也可以写入数据
流 可以是字节流,也可以是字符流
类
- InputStream
- OutputStream
- Reader
- Writer
这些类在javaio中负责不同的功能
- 文件访问
- 网络访问
- 内存缓存访问
- 线程内部通信(管道)
- 缓冲
- 过滤
- 解析
- 读写文本 (Readers / Writers)
- 读写基本类型数据 (long, int etc.)
- 读写对象
Reader类 基类 Buffered InputStream
InputStream的read()方法返回一个字节,意味着这个返回值的范围在0到255之间(当达到流末尾时,返回-1),Reader的read()方法返回一个字符,意味着这个返回值的范围在0到65535之间(当达到流末尾时,同样返回-1)。这并不意味着Reade只会从数据源中一次读取2个字节,Reader会根据文本的编码,一次读取一个或者多个字节。
Writer类 基类 Buffered OutputStream
FileReader 和FileWriter类
用于处理文件内容
FileReader
以字符流的形式读取文件
read()方法返回一个包含了读取到的字符内容的int类型变量(译者注:0~65535)。如果方法返回-1,表明FileReader中已经没有剩余可读取字符,此时可以关闭FileReader。-1是一个int类型,不是byte或者char类型,这是不一样的。
使用
FileReader使用jvm底层指定得编码格式读取数据,没有api提供编码设置方式
可以使用 InputStreamReader配合FileInputStream代替FileReader,InputStreamReader可以设置编码方式
FileWriter
把数据以只会如得形式写入文件,处理字符,不同编码,一个字符可能相当于一个或多个字节
写入数据时是覆盖文件内容还是追加到文件末尾,构造函数FileWriter中两个构造参数第二个参数
true是追加写入,false是覆盖写入
字符流的Buffered和Filter
BufferedReader能为字符输入流提供缓存区
BufferedReader和BufferedInputStream区别,操作字符和操作原始字节
可以通过构造函数将FileReader包装成BufferReader,这样就有了缓存区,第二个参数
可以指定缓存区大小
BufferedWriter和上述类型,有和readerline方法相似的writeLine方法,这样可以加快速度
FilterReader是实现自定义过滤输入字符流的基类
PipedReader用于读取管道中的数据
PipedWriter 用于写入管道中的数据
CharArrayReader能够从字符数组中读取字符流
CharArrayWriter 将字符写入字符输出流中,并将写入的字符转换成字符数组
LineNumberReader
是用来记录已读取数据行号的BufferedReader,默认情况下,行号从0开始,可以很方便的定位
出错的行信息
StringReader
StringWriter
java io中异常处理" title="异常处理">异常处理
这里可以使用异常模板处理文件异常,这样代码会更整洁可读
以上是 javaio流和异常处理 的全部内容, 来源链接: utcz.com/z/517010.html