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

回到顶部