IO操作

I/O
输入流:源——(读取)——>数据<——>程序
输出流:程序<——>数据——(写入)——>目标
java流
流概念
数据流向某个对象的数据序列, 并且到达这个对象的过程。
流与源数据和程序之间的关系
输入流:数据源数据流向计算机内存的过程
源数据流——(读取)————>程序
流与目标数据源和程序之间的关系
输出流:把数据从程序流向目标数据源的过程
程序————(写入)——>目标数据源
流的分类
按照流向划分:输入流,输出流
按照处理数据单元划分:字节流(字节输入流,字节输出流),字符流(字符输入流,字符输出流)
字节流:以字节为数据单位来处理的流(Byte:8位)
字符流:以字符为数据单位来处理的流(Char:16位)
流的基类:
按照处理数据单元划分:字节流(字节输入流InputStream基类,字节输出流OutputStream基类),字符流(字符输入流Reader基类,字符输出流Writer基类)
* 输入流:以InputStream(字节输入流)和Reader(字符输入流)为基类
* 输出流:以OutputStream(字节输入流)和Writer(字符输出流)为基类

InputStream
java.io.InputStream包
方法
说明
int read()
从输入流中读取单个字节,返回所读的字节数据
int read(byte[] b)
从输入流中读取最多b.length长度的字节,并存储在字节数组b中,保存的位置从off开始
int read(byte[] b,int off,int len)
从输入流中读取最多len长度的字节,保存到字节数组b中,保存的位置从off开始
void close()
关闭输入流
int available()
返回可以从输入流中读取的字节数目
skip(long n)
从输出流中跳过参数n指定数目的字节
mark(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()
强制把任何被缓冲的已写的输出数据输出到输出流
IOException异常
File
File类的构造方法
方法
说明
File(String pathname)
接受文件名作为字符串
File(String dir,String subpath)
dir参数指定目录路径,subpath参数指定文件名
File(File parent,String subpath)
parent参数指定目录路径,subpath参数指定文件名
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对象表示的文件是否是普通文件
File类创建或删除文件和目录
方法
说明
boolean delete()
删除此对象指定的文件
boolean createNewFile()
创建空文件
boolean isDirectory()
测试此File对象表示的文件是否是目录
boolean mkdir()
创建由该File对象表示的目录
boolean mkdirs()
创建包括父目录的目录

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()方法标记的位置

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


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

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

对象反序列化
反序列化步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值