Java拾遗之Java基础-流

开发 前端
流类有ObjectInputStream和ObjectOutputStream,本身这两个方法没什么,但是其要写出的对象有要求,该对象必须实现Serializable接口,来声明其是可以序列化的。否则,不能用对象流读写。

一、概述

Java中IO流按方向分为输入流和输出流,按数据类型分为字节流和字符流。

二、按类型

三、按方向

输入

输出

四、常见流介绍

节点流类型常见的有:

对文件操作的字符流有FileReader/FileWriter,字节流有FileInputStream/FileOutputStream。

处理流类型常见的有:

缓冲流:缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写效率,同事增加了一些新的方法。

字节缓冲流有BufferedInputStream/BufferedOutputStream,字符缓冲流有BufferedReader/BufferedWriter,字符缓冲流分别提供了读取和写入一行的方法ReadLine和NewLine方法。

对于输出地缓冲流,写出的数据,会先写入到内存中,再使用flush方法将内存中的数据刷到硬盘。所以,在使用字符缓冲流的时候,一定要先flush,然后再close,避免数据丢失。

转换流:用于字节数据到字符数据之间的转换。

仅有字符流InputStreamReader/OutputStreamWriter。其中,InputStreamReader需要与InputStream“套接”,OutputStreamWriter需要与OutputStream“套接”。

数据流:提供了读写Java中的基本数据类型的功能。

DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,需要“套接”在InputStream和OutputStream类型的节点流之上。

对象流:用于直接将对象写入写出。

流类有ObjectInputStream和ObjectOutputStream,本身这两个方法没什么,但是其要写出的对象有要求,该对象必须实现Serializable接口,来声明其是可以序列化的。否则,不能用对象流读写。

还有一个关键字比较重要,transient,由于修饰实现了Serializable接口的类内的属性,被该修饰符修饰的属性,在以对象流的方式输出的时候,该字段会被忽略​

责任编辑:武晓燕 来源: 今日头条
相关推荐

2022-10-11 09:33:04

Java异常Exception

2018-11-30 15:17:38

CPUCache缓存行

2010-03-30 08:36:26

Java框架StrutsSpring

2021-12-14 07:40:07

C# 异步流结合体

2021-03-19 16:05:33

CSS CSS 属性CSS 基础

2021-06-25 10:18:08

JavaScript Array.map 巧技拾遗

2013-09-16 16:07:38

Java基础IO

2016-07-29 10:37:00

互联网httphtml

2011-07-04 16:04:20

Applet

2011-07-22 17:14:53

java

2011-07-05 14:42:46

java

2022-10-21 14:12:06

2011-07-19 09:38:41

一维数组Junit静态成员

2011-07-04 13:31:15

2022-03-28 09:31:58

for循环语句

2009-07-09 16:24:48

JDK学习笔记Java语言基础

2021-02-26 13:08:27

Java高并发AQS

2021-02-22 08:39:03

Java关键字Java基础

2021-03-18 10:01:06

Java编译异常运行异常

2022-10-11 08:37:43

Servlet配置版本
点赞
收藏

51CTO技术栈公众号