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. 《C Primer Plus》第六版笔记--4~6章

    目录 第四章 字符串和格式化输入/输出 第五章 运算符.表达式和语句 第六章 C控制语句:循环 虽然匆匆忙忙,但还是要做笔记,虽然大概都知道...... 挑一些容易忘记的地方 第四章 字符串和格式化输 ...

  2. Egg上层框架CabloyJS是如何输出SQL语句日志的?

    背景 在Egg开发实践中,经常会遇到一个问题:如何查看刚刚执行过的Egg组装的原生SQL语句呢? 1. 现有方案 可以直接在项目的config配置文件中添加MySQL配置debug: true.这会启 ...

  3. Bean Validator

    Bean Validator 关于Jakarta EE 2018年03月, Oracle 决定把 JavaEE 移交给开源组织 Eclipse 基金会,并且不再使用Java EE这个名称. 因此jav ...

  4. 2021.05.04【NOIP提高B组】模拟 总结

    T1 题目大意, \(S_{i,j}=\sum_{k=i}^j a_k\) ,求 \(ans=\min\{ S_{i,j}\mod P|S_{i,j}\mod P\ge K \}\) 其中 \(i\l ...

  5. 知道vue组件同级传值吗?

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. WinSCP和PuTTY的安装和使用

    简介 WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件. 安装 1.下载地址:https://www. ...

  7. java程序使用ssl证书连接mysql

    1. 在mysql服务器上生成证书 openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ...

  8. Docker 与 K8S学习笔记(二十五)—— Pod的各种调度策略(上)

    上一篇,我们学习了各种工作负载的使用,工作负载它会自动帮我们完成Pod的调度和部署,但有时我们需要自己定义Pod的调度策略,这个时候该怎么办呢?今天我们就来看一下如何定义Pod调度策略. 一.Node ...

  9. 从UI Designer上面动态创建下拉列表

    在UI Desigher上创建一个新的列表 并创建2个值,code 和value 添加一个EventHandler 在EventHandler上面添加一个Operation 类型为script$dat ...

  10. # Vue3 setup 函数

    Vue3 setup 函数 vue2 和 vue3 开发的区别 首先,目前来说 vue3 发布已经有一段时间了,但是呢,由于还处于优化完善阶段,对于 vue3 开发项目的需求不是很高,主要还是以 vu ...