1.1java.io.objectInputStream 对象输入流:用于将一组字节(通过对象输出流写出对象而转换的一组字节)读取并转换为对应的对象。对象输出流将对象写出时转换为一组字节的过程,称为:对象序列化对象输入流将这组字节读取并还原会对象的过程,称为:对象反序列化
1.2java.io.Serializable Serializable序列化接口
当一个类实现了Serializable接口后,应当在当前类中添加一个常量: 序列化版本号serialVersionUID
序列化版本号若不指定,那么编译器会在编译后的class文件中默认添加一个,而值则是根据当前类结构生成,但这有一个问题,若当前类的结构发生了变化,那么版本号会发生变化,所以建议自行制定版本号 版本号影响对象反序列化的结果:当对象输入流读取一个对象并尝试进行反序列化时会检测该对象的版本号与其所属类现有版本号是否一致,一致则反序列化成功,不一致则反序列化失败版本号一致的情况下,若待反序列化的对象与当前类现有结构不一致是,则采取兼容模式,即:该对象的属相现有类依然有的则还原,没有的则被忽略。
transient--关键字:该关键字用来修饰属性,那么当该对象进行序列化时,这个属性的值会被忽略,从而达到对象“瘦身”的效果
1.3java.io.FileOutputStream;Java根据流读写数据的单位划分为:字节流,字符流 字节流以字节为单位读写数据字符流以字符(unicode)为单位读写数据,但是底层本质上还是读写字节,只是字节与字符的转换工作有字符流完成Weiter与Reader是所有字符流的父类,他们是一对抽象类,规定了所有字符流都要具备的读写字符方法。转换流OutoutStreamWriter与InputStreamReader是字符流的一对常见实现类
OutputStreamWriter的构造方法支持第二个参数,可以指定字符集,这样通过该流写出的字符都会按照指定的字符集转换,若不指定第二个参数则安装系统默认字符集转换
1.4java.io.PrintWriter;缓冲字符流:缓冲字符流内置缓冲区,可以提高读写字符效率,并且缓冲字符流的特点可以按行读写字符串。
java.io.BufferedWriter
java.io.BufferefReader
java.io.printWriter是常用的缓冲字符输出流,并且还提供了支佛那个行刷新功能,由于创建PrintWriter时其内部总是嵌套BufferedWriter所以实际的缓冲操作是由BufferefWriter实现
printWriter(pw)支持直接对文件操作的构造方法
printwriter(String path,String snc)
printwriter(File file,String snc)
csn:charset name 字符集名称
PrintWriter在流链接中的构造方法:
PrintWriter(OutputStream out)
PrintWriter(Writer out)
使用上诉构造方法是,有一个对应的重载构造方法要求传入第二个参数,该参数为boolean值若该值为true,则pw具有自动行刷新功能,即:每当使用PW。println()写出内容后都会自动进行
flush操作
PrintWriter(OutputStream out,boolean autoflush)
PrintWriter(Writer out,boolean autoflush)
1.5java.io.BufferedReader;缓冲字节输入流 可以按行读取字符串
BufferedReader提供方法:
String readLine()连续读取若干字符,知道读取了换行符为止,将之前的所有字符以一个字符串形式返回。注意,返回的字符串中是不包含最后的换行的,若返回为null,则表示末尾.
2.1异常捕获机制中的try-catch
catch可以定义多个,针对try代码块中可能出现的异常有不同的处理方式时,需要单独捕获这些异常并编写解决手段代码但是应当养成一个习惯,就是在最后捕获一个Exceotion,这样会避免因抛出一个未捕获的异常导致程序出现中断的情况,当捕获的异常之间存在继承关系时,需要将子类异常定义在上面捕获,后定义父类型异常。
异常捕获机制中的finally;finally块只能定义在异常捕获机制的最后,即:try之后或者一个catch之后。finally块可以保证无论try语句块中的代码是否抛出异常,finally块中的代码都必将执行。所以通常会将无关异常都要执行的代码放入finally块中确保执行,比如IO操作中的关闭流操作。

注意:finalize;当一个对象即将被GC释放前,GC会调用该对象的finalize方法,调用后该对象即被释放。finalize方法是Object定义的方法

我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!

更多精彩以后更新,转载注明!

java-流的使用完结与异常处理机制的更多相关文章

  1. 【Go语言】错误与异常处理机制

    ①error接口 Go语言中的error类型实际上是抽象了Error()方法的error接口 type error interface { Error() string } Go语言使用该接口进行标准 ...

  2. Java 异常处理机制和集合框架

    一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...

  3. Java异常处理机制 —— 深入理解与开发应用

    本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...

  4. 如何正确使用Java异常处理机制

    文章来源:leaforbook - 如何正确使用Java异常处理机制作者:士别三日 第一节 异常处理概述 第二节 Java异常处理类 2.1 Throwable 2.1.1 Throwable有五种构 ...

  5. Java异常处理机制的秘密

    一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw 2.finally中t ...

  6. java异常处理机制详解

    java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...

  7. Java异常处理机制 try-catch-finally 剖析

    Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...

  8. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  9. 深入理解java异常处理机制

       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...

随机推荐

  1. hash和history路由的区别

    在了解路由模式前,我们先看下 什么是单页面应用,vue-router  的实现原理是怎样的,这样更容易理解路由. SPA与前端路由 SPA(单页面应用,全程为:Single-page Web appl ...

  2. Mysql优化基础之Explain工具

    字段解释 id:代表sql中查询语句的序列号,序列号越大则执行的优先级越高,序号一样谁在前谁先执行.id为null则最后执行 select_type:查询类型,表示当前被分析的sql语句的查询的复杂度 ...

  3. python基础学习5

    Python的基础学习5 内容概要 流程控制理论 if判断 while循环 内容详情 流程控制理论 # 流程控制:即控制事物执行的流程 # 执行流程的分类 1.顺序结构 从上往下按顺序依次执行 2.分 ...

  4. Koa系框架(egg/cabloy)如何获取微信支付回调请求中的xml参数

    背景 在Koa系框架(如EggJS)中进行微信支付开发时,遇到一个问题:微信支付平台会发送一个回调请求,通知支付订单的处理结果.该请求传入的参数是xml格式,而Koa中间件koa-bodyparser ...

  5. torch.rand、torch.randn、torch.normal、torch.linespace

    torch.rand(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) # ...

  6. [WUSTCTF2020]颜值成绩查询-1

    分享下自己在完成[WUSTCTF2020]颜值成绩查询-1关卡的手工过程和自动化脚本. 1.通过payload:1,payload:1 ,payload:1 or 1=1--+,进行判断是否存在注入, ...

  7. sql server 开启一个事务

    开启事务,回滚 /*============================================================== */ /* Date : 2020年11月18日 11 ...

  8. Systemverilog-- OOP--对象的拷贝

    ​ 目录 浅拷贝: 定义拷贝函数: 拷贝函数总结: 浅拷贝: Packet p1; Packet p2; p1 = new; p2 = new p1; 在创建p2对象时,将从p1拷贝其成员变量例如 i ...

  9. 动态树 — Link_Cut_Tree

    [模板]动态树(Link Cut Tree) Link-cut-tree是一种维护动态森林的数据结构,在需要动态加边/删边的时候就需要LCT来维护. Link-cut-tree的核心是轻重链划分,每条 ...

  10. RS485通信电路

    RS485由RS232和RS422发展而来,弥补了抗干扰能力差.通信距离短.速率低的缺点,增加了多点.双向通信能力,即允许多个发送器连接在同一条主线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了 ...