IO流(一)

IO流可以分为输入流,输出流,输入流是读取,输出流是写入;也可以分为字节流和字符流,字节流操作的是字节数据,字符流是操作的字符数据;

 

字符流:

  体系:Writer

      |----OutputStreamWriter  

        |----FileWriter

      |----BufferedWriter

  Witer是输出流。是一个抽象类,里面不仅有抽象方法,也有非抽象方法,他们是一些共性方法。

  OutputStreamWiter 是Writer的实现类,使用这个类时,我们可以指定编码集。但是我们常用的是:FileWriter,它继承了OutputStreamWriter。里面没有什么特别的方法。

  BufferedWriter  是带缓冲区的,这里使用了装饰模式。里面封装了一个特别的方法。newLine() 方法,作用就是换行。在Windows下 相当于 "\r" "\n"两个字符。而在Linux下就是相当于"\n"。

    注1:使用IO流我们一定要处理IOException而不是抛出这个异常,并且在finally块中 关闭输出流。

    注2:在使用BufferedWriter时,我们要使用flush() 方法,将缓冲区的内容写到指定位置。

    注3:在Windows下,目录是使用"\"分割,但是在Java中这个是特殊符号,我们需要转义写成"\\",例如:FileWriter fw=new FileWriter("c:\\aaa\\test.txt");

    注4:我们在使用FileWriter 创建对象时,如果指定位置已经有重名文件存在,会将该文件覆盖。里面的内容只有我们当时写入的东西。如果我们想要在该文件后面接着写入,此时我们需要使用

      FileWriter(String fileName,boolean append)  构造函数来创建对象。例如:FileWriter fw=new FileWriter("d:\\javatest\\iodemo.txt",true);

 

 

       Reader

      |----InputStreamReader

        |----FileReader

      |----BufferedReader

Reader是输入流,也是抽象类,里面不仅有抽象方法,也有非抽象方法。。。。

。。。。和Writer相似。。。

BufferedReader 中有一个特殊的方法,readLine() 方法,作用是读取一行数据,但是不包含终止符。它的原理就是在Windows下读取到"\r\n"两个字符时,判定一行数据读取完毕。

在Linux下,读取到"\n"时,判定一行数据读取完毕。

    注1:在Reader类及FileReader类中的读取方法read()  返回值是int类型,当读取已经已经到末尾时,返回 -1;只有BufferedReader中的特殊的读取方法readLine() ,返回类型是String,

    当读取完毕时返回null。

 

转载于:https://www.cnblogs.com/alwaysJP/p/7990264.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值