Java教程

Java学习之I/O流

本文主要是介绍Java学习之I/O流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

5.24


目录

 

File文件

打印流

对象序列化流

Properties

输入输出流


File文件

  • 文件和目录可以通过File封装为对象

方法名说明
File(String )给定路径名封装为File对象
File(String , String)父路径名和子路径名创建新的File对象
File(File , String)父类和子类结合创建
方法名说明
isDirectory()File是否为空 布尔类型
isFile()File是否为文件 布尔类型
exists()File是否存在 布尔类型
getAbsolutePath()获取绝对地址 String类型
getPath()相对地址 String类型
getName()获取文件或目录的名称 String类型
list()获取文件和目录名称字符串数组 String[]类型
listFiles()获取目录和文件的File对象数组 File[]类型
  • delete()删除方法:目录中有内容不能删除

打印流

  • 字节打印流 PrintStream

  • 字符打印流 PrintWriter

特点

  • 只负责输出数据 不负责读取数据

  • 有自己的特有方法

字节打引流

PrintStream(String fileName)    

对象序列化流

对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象
这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型,对象的数据,和对象中存储的属性等信息,
字节序列写到文件之后,相当于在文件中持久保存一个对象信息
反之,使用对象反序列化流重构对象,从文件中读取出来
  • 对象序列化流 ObjectOutputStream

  • 对象反序列化流 ObjectInputStream

构造方法

ObjectOutputStream(OutputStream out)

序列化对象的方法

void WriteObject(Object obj)

注意

  • 一个对象想要序列化,该对象的所属的类必须实现Serializable接口

  • Serializable是一个标记接口,实现该接口不需要重写任何方法

对象序列化一些问题

  • 用对象序列化序列化一个对象之后,修改对象所属的类,读取文件会出现问题

  • 可以给所属的类加一个变量

    private static final long serialVersionUID =42L
  • 如果一个对象中的某个成员变量的值不想序列化 给该成员变量加一个transient关键词

Properties

是一个Map体系的集合类
可以保存到流中或者从流中加载

作为集合特有的方法

方法说明
setProperty(String key,String value)设置集合的键和值,底层调用HashTable方法put
geProperty(String key)使用此属性列表中指定的键搜属性
Set<String>stringPropertyNames()获取键集

作为IO流的特有方法

方法说明
load(InputStream in)从输入字节流读取属性列表
load(Reader r)从输入字符流读取属性列表
store(OutputStream out,String s)写入Property表中,写入输入字节流
store(Writer w,String s)写入Property表中,写入输入字符流

输入输出流

 

 

这篇关于Java学习之I/O流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!