Java-----节点流

 文件节点流

FileInputStream和FileOutputStream是文件字节流,是一种节点流

文件字节输入流的构造方法:

  • FileInputStream("文件名称"),如果文件不存在则FileNotFoundException
  • FileInputStream(File)

文件字节输出流的构造方法:

  • FileOutputStream(“文件名称”) 如果文件不存在则新建文件,如果文件存在则覆盖文件内容 FileOutputStream(String name文件名称, boolean append是否采用追加方式)
  • FileInputStream和FileOutputStream两个类属于结点流,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流。
  • 如: FileInputStream infile = new FileInputStream("myfile.dat"); FileOutputStream outfile = new FileOutputStream("results.dat"); 要注意的是,构造FileInputStream, 对应的文件必须存在并且是可读的,而构造FileOutputStream时, 如输出文件已存在,则必须是可覆盖的。

内存数组节点

如果文本则使用char[],如果二进制则使用byte[]

构造器方法

  • CharArrayReader(char[] buf)  其中char[]就是数据的来源,就是说Reader就是从char[]中读取数据
  • CharArrayRead(char[] buf, int offset, int length)
  • CharArrayWriter      用于实现向一个字符数组中写入数据,这个数组可以自动调整大小 ByteArrayInputStream、ByteArrayOutputStream和CharArrayReader以及CharArrayWriter类似,支 持操作的内容不同而已,操作byte[]与char[]

内存字串流

  • StringReader用于从一个字串String中读取数据
  • StringWriter用于给一个StringBuffer中写入数据,实现一个可边长的字串

总结

  • 读写文件使用节点流FileInputStream/FileOutputStream和FileReader/FileWriter,如果操作文本 文件,建议使用FileReader/FileWriter,如果操作二进制文件建议使用FileInputStream/FileOutputStream
  • 需要建立缓冲区(建立临时文件的方式效率低),可以考虑使用内存节点,例如 CharArrayReader/CharArrayWriter、StringReader/StringWriter和 ByteArrayInputStream/ByteArrayOutputStream
  • 如果需要一个二进制缓冲区可以使用ByteArrayInputStream/ByteArrayOutputStream,如果需要 一个字符缓存可以使用CharArrayReader/CharArrayWriter、StringReader/StringWriter
  • 如果数据量不是特别大使用CharArrayReader/CharArrayWriter更为方便,如果数据量大而且可能 需要直接操作缓冲区则使用StringReader/StringWriter
  • StringWriter中提供了方法getBuffer():StringBuffer
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值