java 中 数据流操作总结

java 中主要流有:

文件流:BufferedReader 与 PrintWriter ,     Scanner 与 PrintWriter

二进制流:FileInputStream 与 FileOutputStream ,BufferedInputStream 与 BufferedOutputStream ,DataInputStream 与 DataOutputStream ,ObjectInputStream 与ObjectOutputStream

如何区分它们,其实换句话说 就是如何正确使用它们 更贴切!

文件流:BufferedReader 与 PrintWriter ,     Scanner 与 PrintWriter      传输文件使用,不能用于传输图片等其他

格式:例如:

1、BufferedReader br = new BufferedReader(new FileReader(new File(filename)));

2、PrintWriter pw = new PrintWriter(new File(filename));

Scanner 主要是控制台用的输出流,

1、如果是输出到控制台用      Scanner scanner = new Scanner(System.in);

2、如果要输出到文件中用      Scanner scanner = new Scanner(new File(filename));

二进制流:FileInputStream 与 FileOutputStream ,FileterInputStream 与FileterOutputStream,BufferedInputStream 与 BufferedOutputStream ,DataInputStream 与 DataOutputStream ,ObjectInputStream 与ObjectOutputStream

1、FileInputStream 与 FileOutputStream 是最基本的继承 InputStream 与 OutputStream 的二进制流 以字节的方式从文件中读和写 他们的方法 read() ,write()只能读和写字节,不能读和写如整数值,双精度或字符串等 格式为:

FileInputStream input = new FileInputStream(new File(filename));

FileOutPutStream output = new FileOutputStream(new File(filename));

2、FileterInputStream 与FileterOutputStream 是为了解决FileInputStream 与 FileOutputStream  不能读和写如整数值,双精度或字符串等的缺陷,通过过滤器数据流 FileterInputStream 与FileterOutputStream 来包装数据字节流,

3、一般不使用FileterInputStream 与FileterOutputStream来处理流数据,而是使用它的两个子类  BufferedInputStream 与 BufferedOutputStream ,DataInputStream 与 DataOutputStream 来处理包装数据流

4、BufferedInputStream 与 BufferedOutputStream 一般用于做包装数据处理,也不直接用于处理流 ,最常用的是 DataInputStream 与 DataOutputStream  格式如下:

DataInputStream input = new DataInputStream (new FileInputStream(new File(filename)))

DataOutputStream input = new DataOutputStream (new FileOutputStream(new File(filename)))

或者

DataInputStream input = new DataInputStream (new BufferedInputStream(new FileInputStream(new File(filename))))

DataOutputStream input = new DataOutputStream (new BufferedOutputStream(new FileOutputStream(new File(filename)))) (注:第二种方法效率更高,它多加了一层封装)

5、ObjectInputStream 与ObjectOutputStream 为对象流,它完全可以替代DataInputStream 与 DataOutputStream 因为对象流有 他们的所有方法,而且还有 readObject(),writeObject()方法用于处理对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值