Java_SE08-文本数据IO操作,异常处理

java.io.PrintWriter

  1. 缓冲字符输出流,特点:可以按行写出字符串,并且带有自动行刷新功能
    通常创建PrintWriter时,其内部会自行创建一个高级流BufferedWriter作为缓冲功能
  2. java.io.BufferedWriter,缓冲字符输出流
  3. 针对文件写出操作的构造方法:PrintWriter(File file);PrintWriter(String path)
  4. void println();void print();写出方法
  5. PrintWriter可以直接处理字节流,也可以处理字符流,但是直接处理字节流时不能指定字符集,中间添加一层OSW就可以指定字符集了
  6. 当创建PrintWriter时处理的是流(字节字符均可),就可以创建具有自动行刷新功能
    *当传进PW时第一个参数为流时,就支持第二个参数,该参数是一个boolean值,若为true则PW具有自动行刷新,直接操作文件不具有自动行刷新功能
    *自动行刷新:每当使用println方法写出字符串时,会自动flush
  7. 具有自动行刷新功能的PW在使用println()方法写出字符串时会自动进行flush,注意:print方法写出字符串不会进行flush

java.io.BufferedReader

  1. 缓冲字符输入流,可以按行读取字符串
  2. BufferedReader提供方法:String readLine();该方法会连续读取若干字节,直到读取到换行符为止,然后将换行符之前的所有字符组成一个字符串后返回,但是返回的字符串中不含有最后的换行符,当读取到文件末尾,返回值为null

异常处理

  1. 异常处理中的try-catch
  2. *当JVM运行过程中出现异常,都会实例化一个该异常实例并抛出,然后检查该异常是否可以被捕获,若没有被try包围,则会将该异常抛到方法之外
  3. *当try中代码出现异常时,catch可以捕获抛出的异常并得以解决, 前提是catch捕获的异常是try中抛出的异常类型
    *try{要捕获异常的代码}catch(可能出现的错误){解决该错误的逻辑}…注:出了try语句进入catch就不会再进入try(catch可以写很多个,建议在最后捕获异常的父类)
  4. try不能独立使用,后面需要配合catch或finally
    *对于catch而言,可以有多个,来分别捕获try中出现的不同异常来进行处理
  5. 应当养成一个习惯,在最下面捕获Exception,这样做可以防止出现没有捕获的异常而导致程序中断,若捕获的异常存在父子继承关系,那么子类异常必须在上面先行捕获
  6. finally块,可以直接跟在try块之后,或者最后一个catch块之后
    *finally块可以保证无论try语句中的代码是否出错,其finally块中代码一定被执行
    *通常会将诸如释放资源等操作放入finally块
  7. 当方法中使用throw抛出一个异常时,应当在方法上使用throws声明该异常的抛出,以告知调用者来处理这个可能出现的异常,只有抛出RuntimeException及其子类异常时,可以不使用throws通知调用者
  8. 当调用一个含有throws声明的方法时,编译器要求我们必须处理该方法可能抛出的异常,处理手段有两个:
    *使用try-catch自行捕获
    *在当前方法上继续使用throws将该异常抛出
  9. 子类重写父类含有throws抛出异常声明的方法时对throws的重写要求:
    *可以不抛出任何异常
    *可以只抛出部分异常
    *可以抛出父类抛出异常的子类异常
    *不可以抛出额外异常
    *不可以抛出父类抛出异常的父类异常
  10. Exception常用API
    *void printStackTrace();用来输出错误信息,用来跟踪异常事件发生时执行堆栈的内容
    *String getMessage();用来输出出现异常的相关信息
  11. 自定义异常,语法结构:class 自定义异常名 extends Exception{…},通常用来说明业务逻辑级别的异常
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值