(九)字符输入流/输出流

  1. CharArrayReader/CharArrayWriter与ByteArrayInputStream/ByteArrayOutputStream原理类似,不涉及真正的I/O操作,对内部提供一个char数组,所有读/写操作都针对这个数组进行。
  2. BufferedReader与BufferedWriter与BufferedInputStream/BufferedOutPutStream原理类似,构造函数需要一个字符输入/输出流作为入参。内部以一个字符数组作为缓存,将底层输入/输出流的数据一次性读取到缓存数组中
  3. FileReader 与FileWriter是针对文件的字符输入/输出流,FileReader只是InputStreamReader的子类,FileWriter只是OutputStreamWriter的子类,其本身并没有任何特殊实现,字符的输入/输出都是靠父类实现的
  4. PrintWriter提供了对输出内容的格式化。
      a. 对于构造函数传入的OutputStream实例,最后会被封装成new BufferedWriter(new OutputStreamWriter(out)
      b.对于传入的File实例或者fileName,最后会被封装成new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)
      c. 对于字符集的指定都是靠OutputStreamWriter完成的
      e. 不会抛出异常,异常将在内部被捕获并标记,通过checkError()可以判断是否出现异常。
      f. 因为使用BufferedWriter,所以输出的数据会放在缓存中,不会马上输出。
      g. println()函数的实现是将输出分为两部分:输出字符;输出换行。通过synchronized保证原子性。  
 public void println(float x) {
        synchronized (lock) {
            print(x);
            println();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值