Java中的流操作

1. 字符流
1.1字符输入流 - Reader - FileReader
涉及到连接的,用完了就要关闭。
 
**为什么read方法  返回的值是 int,而不是char?因为读到结尾的时候,char不好使,结尾 int 就为 -1。
 
案例:编写一个字符输入流,来读取外部文件中的数据
根据数据流动的方向 - 输入流
根据操作的数据类型 - 字符流
字符输入流 - Reader(FileReader  前面是来的源,后面是操作)
 
1.2 字符输出流 - Writer - FileWriter
 
案例:编写一个流  来将指定的字符写出到外部文件中
 
1.3 关流的过程
        IO流用过之后必须保证关闭,但是 IO 流的代码中往往存在大量的异常,为了保证关流的操作一定会被执行,所以通过关流都在 finally 代码块中进行。而为了保证 finally 中可以看到流对象,通常
 
案例:编写一个程序,实现文件的拷贝
所谓的文件拷贝,实际上就是
 
1.4 使用缓冲区来提升程序的性能
 
1.5 使用缓冲流提升程序的性能
        功能:
               自带缓冲区  提升程序性能
               提供一些新方法,方便操作
        BufferedReader
 
        BufferedWriter
 
1.6 增强类的方式
a. 继承
    可以通过继承父类,在子类中增强能力,缺点是对父类对象无效。
b.装饰设计模式
    可以对已有对象生效
c.动态代理
 
1.7 装饰设计模式
    java中共有 23 种设计模式。装饰模式是其中的一种。所谓的设计模式,其实就是前人总结的写代码的套路。(动态代理,适配器)
    主要的功能:就是在原有的被装饰者的基础上增加其他能力。
    实现方式:
 
案例:为 Person 类通过装饰设计模式 使其能够飞
 
缓冲流 - BufferedReader 和 BufferedWriter 就是使用了装饰设计模式实现的。
实验:翻阅BufferedReader  BufferedWriter 的源代码。
 
1.8 字符流 - 其他字符流
    StringReader
        数据来源是字符串的字符流
案例:利用StringWriter以一段
 
字节流 - 字节输入流
    InputStream
 
字节流 - 字节输出流
    OutputStream
 
案例:通过字节流,直接实现文件的复制
 
2. 转换流
    字符流的底层也是字节流,只不过在字节流的基础上增加了缓冲区和编解码器。
    字符流内置的但是 java 提供的字符流  缓冲区和编解码器是无法调整的,这在使用
 
案例:拷贝一个 utf-8 编码集  包含中文的文本文件  要求产生的文件也是 utf-8/gbk。
 
3. 系统流
在java中有一个重要的类,叫做System,代表当前系统,
 
通过系统流向控制台写数据
 
系统输出流
 
修改标准系统输出流输出位置
 
系统输入流
 
修改标准系统输入流输入位置
 
打印流  系列化流

转载于:https://www.cnblogs.com/tangdiao/p/9531909.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值