IO流的学习(一)

       对于IO流的几个常用基类: 字节流的抽象基类:InputStream OutputStream

                                                  字符流的抽象基类: Reader Writer

                                          字符流的特点:IO是用于操作数据,而数据的最常见体现形式:文件。

             那么对于文件的操作有子类:FileReader,FileWriter

例子:在硬盘上,创建一个文件并写入一些文字数据。

使用:FileWriter

                           main()

{

                      // 创建一个写流对象,该对象一被初始化就要明确被操作的文件,如果已有同名 文件,将被覆盖。

                       FileWriter fw=new FileWriter("demo.txt");

                                   fw.write("abcdeff");//调用write方法,将字符写入到流中;

                fw.flush();//刷新流中的数据,使数据写入目的地,此时 文件demo.txt中含有数据

                           fw.close();//关闭流。

}

 

知识点::fw.close()关闭流前会自动刷新流,将数据写入目的地。

但是和fw.flush()的区别: 刷新后,该流仍存在,可以继续使用。

————————————————————————————————————————————————————————————————

 

              FileWriter fw=new FileWriter("demo.txt", true);//传递一个true参数,表示不覆盖已有的文件,并在已有文件的末尾处续写

                            fw.writer();

                              fw.close();

————————————————————————————————————————————————————————————————————

                         FileReader fr=new FileReader("demo.txt") int fr.read();//一次取一个字符,并返回字符的ascii值,当取到结尾后,再取时返回-1.

                               int fr.read(char[] arr) //将字符全读入arr数组中,并返回字符个数,多次取到结尾后,再取时返回-1

.——————————————————————————————————

      对Writer 和Reader 的小总结:

                       write:可写入数据类型::单个字符、字符数组、字符数组中的一部分、字符串、字符串的一部分

                       read :可读到的数据类型:单个字符、字符数组、字符数组中的一部分

————————————————

对于IO的操作,都可能发生异常,所以要做异常抛出或处理机制。

 重点::流资源的关闭代码放在 finally{}中,同时要判断此流是否为null.

 _________

缓冲区:是对操作流的一种加强。

    步骤: 1、先创建一个字符写入流对象,并和文件关联

                   FileWriter fw=new FileWriter ("demo.txt");

             2.创建一个缓冲区,将写入流对象作为参数传递进来。

                     BufferedWriter bw=new BufferedWriter(fw);

                          bw.write(),

                       bw.close()//实质就是关闭它控制的流对象,所以就不比再 fw.close()

 

                                      bw.newLine()//写入一个行分隔符,是该缓冲区提供的一个跨平台的换行符。也就BufferedWriter 有此方法。-

       -----BufferedReader 字符读取流缓冲区

                   FileReader fr=new FileReader(“demo.txt”);

                           BufferedReader br=new BufferedReader(fr);

            BufferedReader中重要的方法: String s=br.readLine();// 按行读取,返回字符串, 如果取完之后,则返回null。

                                                         readLine()方法的原理;无论是读一行获取多个字符,其实最终都是在硬盘上一个一个读取,所以最终使用的还是read()方法。

 

 装饰设计模式:: 当想要对已有的对象进行功能增强是,可以定义类,将已有的对象传人,基于已有对象的功能来加强功能,那么自定义的类就称为装饰类。

           装饰类通常会通过构造方法接收被装饰的对象,并基于此加强功能。 装饰模式比继承灵活,避免了继承体系的臃肿,而且降低了类与类之间的关系。 而且:装饰类和被装饰类都属于一个体系。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值