我的JAVA学习(6)——IO流总结、思维导图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我的JAVA学习(6)——IO流总结、思维导图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3548字,纯文字阅读大概需要6分钟。
内容图文
![我的JAVA学习(6)——IO流总结、思维导图](/upload/InfoBanner/zyjiaocheng/601/07c36a706b47440f9e8de8e73c7e57ef.jpg)
IO流学习总结
一、流的分类
按流的方向分类:
输入流:数据源到程序(InputStream、Reader 读进来)。
输出流:程序到目的地(OutPutStream、Writer 写出去)。
按流的处理数据单元分类:
字节流:按照字节读取数据(InputStream、OutputStream)。
字符流:按照字符读取数据(Reader、Writer)。
按流的功能分类:
节点流:可以直接从数据源或目的地读写数据。
处理流:不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能。
二、常用流的描述
文件字节流:以字节的形式读写文件
文件字符流:以字符的形式读写文件
缓冲字节流:为字节流增加缓冲,提高文件的读取速度
字节数组流:读写内容,返回byte[]数组
数据流:对文件读写各种类型的数据
转换流:字节流与字符流之间的转换,主要是字节流转为字符流
对象流:对文件进行对象的读写
三、IO流相关类
四大基本抽象类InputStream、OutputStream、Reader、Writer
3.1InputStream类
实现类:
? FileInputStream
? ByteArrayInutStream
? BufferedInputStream
? DataInputStream
? ObjectInputStream
此抽象类是表示字节输入流的所有类的父类。InputSteam 是一个抽象类,它不可以实例化。 数据的读取需要由它的子类来实现。根据节点的不同,它派生了不同的节点流子类 。
继承自 InputSteam 的流都是用于向程序中输入数据,且数据的单位为字节(8 bit)。
常用方法:
int read():读取一个字节的数据,并将字节的值作为 int 类型返回(0-255 之间的一个值)。如果未读出字节则返回-1(返回值为-1 表示读取结束)。
void close():关闭输入流对象,释放相关系统资源。
3.2OutputStream类
实现类:
? FileOutputStream
? ByteArrayOutputStream
? BufferedOutputStream
? DataOutputStream
? ObjectOutputStream
? PrintStream
此抽象类是表示字节输出流的所有类的父类。输出流接收输出字节并将这些字节发送到某个目的地。
常用方法:
void write(int n):向目的地中写入一个字节。
void close():关闭输出流对象,释放相关系统资源。
3.3Reader类
实现类:
? FileReader
? BufferedReader
? InputStreamReader
Reader 用于读取的字符流抽象类,数据单位为字符。
常用方法:
int read(): 读取一个字符的数据,并将字符的值作为 int 类型返回(0-65535 之间的一个值,即 Unicode 值)。如果未读出字符则返回-1(返回值为-1 表示读取结束)。
void close() : 关闭流对象,释放相关系统资源。
3.4Writer类
实现类:
? FileWriter
? BufferedWriter
? OutputStreamWriter
Writer 用于输出的字符流抽象类,数据单位为字符。
常用方法:
void write(int n): 向输出流中写入一个字符。
void close() : 关闭输出流对象,释放相关系统资源。
四、File类使用
作用:File 类是 Java 提供的针对磁盘中的文件或目录转换对象的包装类。一个 File 对象而可以代表一个文件或目录,File 对象可以实现获取文件和目录属性等功能,可以实现对文件和目录的创建,删除等功能。
针对文件的操作方法:
createNewFile():创建新文件。
delete():直接从磁盘上删除
exists():查询磁盘中的文件是否存在
getAbsolutePath():获取绝对路径
getPath():获取相对路径
getName():获取文件名 相当于调用了一个 toString 方法。
isFile():判断是否是文件
length():查看文件中的字节数
isHidden():测试文件是否被这个抽象路径名是一个隐藏文件。
针对目录的操作方法:
exists():查询目录是否存在
isDirectory():判断当前路径是否为目录
mkdir():创建目录
getParentFile():获取当前目录的父级目录。
list():返回一个字符串数组,包含目录中的文件和目录的路径名。
listFiles():返回一个 File 数组,表示用此抽象路径名表示的目录中的文件。
五、序列化与反序列化
把 Java 对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为 Java 对象的过程称为对象的反序列化。
ObjectOutputStream 代表对象输出流,它的 writeObject(Object obj)方法可对参数指定的obj 对象进行序列化,把得到的字节序列写到一个目标输出流中。
ObjectInputStream 代表对象输入流,它的 readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。
只有实现了 Serializable 接口的类的对象才能被序列化。Serializable 接口是一个空接口,只起到标记作用。
六、思维导图
内容总结
以上是互联网集市为您收集整理的我的JAVA学习(6)——IO流总结、思维导图全部内容,希望文章能够帮你解决我的JAVA学习(6)——IO流总结、思维导图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。