黑马程序员技术交流社区

标题: Java开发中IO流的定义和普遍用法 [打印本页]

作者: 专注的一批    时间: 2020-7-13 17:35
标题: Java开发中IO流的定义和普遍用法


在Java开发中,Java中IO流相信很多小伙伴们都会用到,但是有很多的小伙伴对他的掌握并不是很牢靠,下面小编帮助各位小伙伴们在重新复习一下。
如何在Java中进行文件的读写,Java IO流是必备的知识。本门课程主要为您带来Java中的输入输出流的内容,包括文件编码、使用File类对文件和目录进行管理、字节流和字符流的基本操作,以及对象的序列化和反序列化的内容。
I/O流

流:数据传输的通道。流的分类:  按传输的类型:字符流和字节流  按流向:输入流和输出流。  字节流:inputstream outputstream  字符流:reader writer  缓冲流:buffered+流  打印流:printStream printWriter  转换流:inputstreamReaderoutputstreamWriter  区别:至于outputstream在执行write时不需要刷新缓冲,其他的输出流都需要执行一个刷新缓冲区的操作。  byte[]  char[]  datainputstream和dataoutputstream可以写java的基本数据类型。  如果要写一个对象的所以的属性值,如果属性值很多实用data数据流很麻烦,而且有些属性(引用类型)就无法处理。

------------》对象流

ObjectInputStream OBjectOutputStream.需要使用对象流的对象的类必须要实现序列化接口。  序列化和反序列化。  序列化:将一个具体的对象的数据转换为一堆字节数据的过程。  反序列化:将一堆字节数据转换为一个具体对象实例的过程。  如何实现:  标记接口:Serializable,Cloneable……//只定义了一种功能,没有具体的内容。它的功能实现由JVM的底层实现。  要实现序列化的类的对象,里面所有的属性都必须实现序列化接口。  基本类型和String默认都实现了这个接口,所以不需要处理。  类中的一个属性不参与序列化:transsient,表示标记的属性不参与序列化。  static定义的变量也不参与序列化。

我们先来说一下IO流是什么意思,i:input输入(读取),o:ouput输出(写入),流:数据(字符,字节)1个字符=2个字节,1个字节=8个二进制。

所谓的IO流就是简单的输入和输出,比如把硬盘中的数据,读取到内存中使用。或者把内存中的数据写入到硬盘中。数据可能是字节也可能是字符,所以有字节流和字符流一说。Axitrader返佣https://www.kaifx.cn/broker/axitrader.html


我们先来说一下字节流,在计算机中,一切文件数据(文本、图片、视频等)在存储时,都是以二进制的形式保存,都是一个一个的字节,传输时也是这样的。所以,字节流可以传输和读取任意文件数据。在操作流的时候,我们要明确,无论是用什么样的流对象,底层传输的始终为二进制数据。

关于IO流还有字节流,其实简单一点来讲,就是硬盘到内存的读取数据,或者是内存到硬盘的写入数据。关于字节流,计算机只能识别二进制数据,一个字节等于8个二进制,那么字节流可以传输任意文件,这些文件在计算机中都是以二进制的形式保存的。小编就先说到这里,希望这篇文章可以帮到大家,也欢迎各位小伙伴补充和纠错。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2