资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

IO流相关知识点(3)

Java 更新时间: 发布时间: 计算机考试归档 最新发布

IO流相关知识点(3)

这里写目录标题

  • 特殊操作流
    • 标准输入输出流
      • 标准输入流
        • 总结 Scanner类输入
      • 标准输出流
        • 总结 sout输出
    • 打印流
      • 字节打印流
      • 字符打印流
        • 第一个构造方法
        • 第二个构造方法
      • 字符打印流改进复制文件
    • 对象序列化流
      • 对象序列化
        • 介绍
        • 具体代码演示
      • 对象反序列化
        • 介绍
        • 具体代码演示
      • 对象序列化的两个问题
        • 第一个问题
        • 第二个问题
    • Properties
      • 概述以及基本代码演示
      • 特有方法
    • Properties和IO流的结合使用
      • 将集合中的内容写入文件

特殊操作流

标准输入输出流


这两个都是system的成员变量,且都用final修饰,所以,可以直接通过system类名调用该变量

标准输入流


一次读取一个字符(数据来源于键盘输入),但是无法正常读取汉字

这里第一个括号里 是采用了转换流 将字节流转换为字符流(实际上就是前面的字符流的定义,原本字符流传入的参数就是字节流)
之后再把字符流包装成字符缓冲流(实际上就是字符缓冲流的定义)

总结 Scanner类输入


java系统给我们提供了Scanner类 实现键盘录入

标准输出流


注意,System.out.print();参数不可以为空
但是System.out.println();参数可以为空->这个可以实现换行

总结 sout输出

打印流

只用于输出流写数据 属于输出流的一份子

字节打印流


只负责输出数据,也就是向文件里写入数据,输出是指从类代码中输出到指定文件


可以使用构造方法创建打印流,参数传入文件路径


当采用继承的父类的方法(比如write)时,会自动转码为字符
当采用自己的特有的方法时,则会原样输出到指定文件

字符打印流

第一个构造方法


参数传入文件路径
对于字符流 要flush 所以需要手动flush

第二个构造方法


第二个构造方法 可以实现自动刷新flush
但是参数需要传入一个Writer对象 一般用FileWrieter(文件路径),再传入一个true

这样,使用自己的println方法时 可以实现三个功能:输出内容+换行+刷新

字符打印流改进复制文件


改进点在于:创建输出流对象,以及循环内写数据的操作,都采用打印流

对象序列化流

对象序列化

介绍


具体代码演示



首先要创建对象序列化输出流 传入输出流为参数

之后创建要写的对象
注意 这个对象要继承serialiazble接口 但是不用重写他的方法,这是个标志类接口
这样,才能将该对象写入文件

最后释放资源

对象反序列化

介绍

具体代码演示


注意 这里有个向下转型的操作,即 将Object向下转型为Student,从而得到Student对象,利用该对象,进行一些操作

对象序列化的两个问题


第一个问题


当使用对象序列化流写入一个文件之后 修改了类当中的内容 那么 反序列化就会发生异常
会报错(因为 一但修改了类当中的内容 那么 其生成的序列化ID会发生改变 从而会导致反序列化异常)

解决办法


对该类进行一个显式声明,手动固定他的序列化ID值 这样 就可以防止ID值发生改变 就可以实现反序列化

第二个问题

给目标成员变量加上一个关键字,transient 即可实现 屏蔽该成员变量参与序列化

Properties

概述以及基本代码演示


特有方法



第一个方法,通过这个方法 限制了添加元素时 参数的类型 本来键和值都是Object类型 现在都被限制为String类型 便于进行一些操作

该方法返回一个set集合 类型为String,该集合储存的是键,键也为String类型

所以,可以利用该方法,返回一个集合,再结合第二个方法,就可以实现增强for循环

Properties和IO流的结合使用


以下分别以第二个和第四个为例,第一个和第三个类似

将集合中的内容写入文件


调用方法时,要用到FileWriter流对象作为方法的参数,该流对象的构造方法指定了文件路径


这里用到FileReader流对象

小技巧,在main函数中写入函数调用,alt+回车 会自动在main函数外面生成函数声明

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1097176.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【IO流相关知识点(3)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2