IO流

来源:互联网 发布:砍柴网源码 编辑:程序博客网 时间:2024/06/11 05:43

1.I/O

2.java流
流概念:数据流向某个对象的数据序列, 并且到达这个对象的过程
输入流:程序读取源数据源
输出流:程序写入目标数据源

3.流的分类
按照流向划分:输入流、输出流
流的基类(按流向区分):
输出流:以OutputStream(字节输出流)和Writer(字符输出流)作为基类
输入流:以InputStream(字节输入流)和Reader(字符输入流)作为基类
按照处理数据单元划分:字节流(处理所有二进制文件、也可处理文本文件)、字符流(处理文本文件)
流的基类(按照处理数据单元划分)
字节流(byte:8位):字节输入流InputStream基类和字节输入流InputStream基类
字符流(char:16位):字符输入流Reader作为基类和字符输出流Writer作为基类

InputStream
java.io.InputStream包
方法
说明
int read()
从输入流中读取单个字节,返回所读取的字节数据
int read(byte[] b)
从输入流中读取最多b.length长度的字节,并存储在字节数组b中,返回实际读取的字节数
int read(byte[] b,int off,int len)
从输入流中读取最多len长度的字节,保存到字节数组b中,保存的位置从off开始
void close()
关闭输入流
int available()
返回可以从输入流中读取的字节数目
skip(long n)
从输入流中跳过参数n指定数目的字节
mar(int readlimit)
标记输入流中的当前位置,以便可以使用reset()方法复位到该标记的位置
void reset()
将当前位置复位为上次调用mark()方法标记的位置

OutputStream
java.io.OutputStream包
方法
说明
void write(int c)
将指定的字节输出到输出流中
void write(byte[] buf)
将字节数组的输出到输出流中
void write(byte{} b,int off,int len)
将字节数组中off位置开始,长度为len的字节数据输出到输出流中
void close()
关闭输出流
void flush()
强制把任何被缓冲的已写的输出数据输出到输出流

File
1.File类构造方法
方法
说明
File(String pathname)
接收文件名作为字符串
file(String dir,String subpath)
dir参数指定目录路径,subpath参数指定文件名
File(File parent,String subpath)
parent参数指定目录路径,subpath参数指定文件名

2.File类常用方法
方法
说明
boolean canRead()
接收文件作为字符串
boolean canWrite()
检查能否写入指定文件
boolean equals(Object obj)
将指定对象语调用的函数的对象进行比较
boolean exists()
测试文件是否存在
String getAbsolutePath()
返回此对象表示的文件的绝对路径
String getName()
返回此对象表示的文件的名称
String getParent()
返回此File对象的路径名的上一级,如果路径名没有上一级,则返回null
boolean isAbsolute()
测试习File对象表示的文件是否是绝对路径名
boolean isDirectory()
测试习File对象表示的文件是否是目录
boolean isFile()
测试习File对象表示的文件是否是普通文件

3.File类创建或删除文件和目录
方法
说明
boolean delete()
删除此对象指定的文件
boolean createNewFile()
创建空文件
boolean isDirectory()
测试此File对象表示的文件是否是目录
boolean mkdir()
创建由该File对象表示的目录
boolean mkdirs()
创建包括父目录的目录

4.Reader
java.io.Reader包
方法
说明
int read()
从输入流中读取单个字符,返回所读取的字符数据
int read(byte[] c)
从输入流中读取c.length长度的字符,保存到字符数组c中,返回实际读取的字符数
read(char[] c,int off,int len)
从输入流中读取len长度的字符,保存到字符数组c中,保存的位置从off位置开始,返回实际读取的字符长度
void close()
关闭流
boolean ready()
如果要读的流已经准备好,返回true,否则返回false
skip(long n)
从输入流中跳过参数n指定数目的字符
mark(int readlimit)
标记输入流中的当前位置,以便可以使用reset()方法 复位到该标记的位置
void reset()
将当前位置复位为上次调用mark()方法标记的位置

5.Writer
java.io.Writer包
方法
说明
write(String str)
将str字符串里包含的字符输出到指定的输出流中
write(String str,int off,int len)
将str字符串里从off位置开始长度为len的字符输出到输出流中
void close()
关闭流
void flush()
清空流

对象序列化
序列化:将对象的状态存储到特定存储介质中的过程(程序——>文件)
内存——(序列化)——>文本文件
对象保存成二进制文件
反序列化:二进制文件转成对象
对象的二进制格式——(反序列化)——>对象

实现对象序列化
支持可序列化(Serializable)
实现java.io.Serializable接口
对象序列化的步骤
创建一个对象输出流—ObjectOutputStream——>writeObject()方法输出序列化对象





原创粉丝点击