java 流

字节流 InputStream,OutputStream
父类的方法:
read() 读取一个字节,-1为空
read(byte[]) 尽量填满byte数组,返回读取字节个数
write(int) 写入一个字节
write(byte[]) 写入一个字节数组
读和写都是有一个偏移量在控制着。所以再次读或写不会覆盖和重复。
字符流Reader,Writer
read() 读取两个字节,解码为字符,返回int字符的ask码,空返回-1
read(char[]) 尽量填满一个字符数组,返回读取长度
write(char) 编码字符,再写入
write(char[]) 编码字符数组,写入
因为涉及编码和解码,非文本文件,会有无法解析的字节码,所以不要对非文本文件使用字符流
以上方法都抛出IOException

流都有close,flush方法,因为写入和读取的字节会在管道中,为了减少磁盘的读写,当缓冲区满的时候会写入磁盘。flush是为了立即写入,防止程序异常,没有执行close,close也是调用了flush。

相应的子类
上面说了抽象流类的基本方法,下面将下字符字节流的子类,这些子类才是可以实例化使用的。
FileInputStream,FileOutputStream
构造方法可以接收File类或直接是文件路径,抛出FileNotFoundException
FileReader,FileWriter
构造方法可以接收File类或直接是文件路径,抛出FileNotFoundException

BufferedReader,一个很好用的字符输入缓冲流,因为可以读行
构造函数,因为是包裹流所以接收字符流。
BufferedReader(new FileReader(String filename))
重要方法是readLine()返回一行,空时返回null

转换流InputStreamReader和OutputStreamWriter,将字节流转换为字符流

打印流PrintStream(PintWriter),一个很方便的字节输出流,可以打印一行,Sytem.out就是PrintStream
PrintStream 字节打印流可以直接接收String,File,(FileOutputStream)OutputStream
PrintWriter 字符打印流可以直接接收String,File,(FileWriter)Writer
重要方法是println(),可以打印一行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值