java IO —— IO 概述

IO 概述

目录

IO 概述

IO 原理

IO分类

按照流向

按照操作单元

按照流的角色

IO 流体系

File 类

文件流

缓冲流

转换流

打印流

数据流


 

IO 原理

  • IO流用来处理设备之间的数据传输。

  • Java程序中,对于数据的输入/输出操作以"流(stream)" 的方式进行。

  • java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。

IO分类

按照流向

输入流:只能从中读取数据,而不能向其中写入数据

输出流:只能从中写入数据,而不能向其中读取数据

这个走向是以内存为基准的,即往内存中读数据是输入流,从内存中往外写是输出流。

按照操作单元

字节流

1. 将数据解释为原始的二进制数据

2. 读写均为字节数据

3. 二进制数据不需要编码和解码,比文本IO效率要高

4. 可移植(与主机编码方式无关)

5. 以byte 为单位进行传输

字符流

1. 字符流将原始数据解析成一种字符

2. 文本 数据存储依赖文件编码方式,它输入输出需要编码解码

3. 字节流:inputStream,outputStream

4. 字符流:Reader,Writer

按照流的角色

节点流:程序直接连接到实际的处理源。

处理流:对一个已存在的流进行封装。

IO 流体系

IO 流一共四十多种但都是以一下的类作为基类
 

抽象基类
  输入流 输出流
字节流 InputStream OutputStream
字符流 Reader Writer

File 类

  • java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
  • File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
  • File对象可以作为参数传递给流的构造函数
File file1 = new File("C:/Users/Administrator/Desktop/file1.txt");
File file2 = new File("C:/Users/Administrator/Desktop/file.txt");

文件流

文件流
  读取文件 输出文件
字节流 FileInputStream FileOutputStream
字符流 FileReader FileWriter

缓冲流

缓冲流
  读取文件 输出文件
字节流 BufferedFileInputStream BufferedFileOutputStream
字符流 BufferedFileReader BufferedFileWriter

为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组

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

对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()将会使内存中的数据立刻写出

转换流

转换流
字符转字节 字节转字符
OutputStreamWriter InputStreamReader

转换流提供了在字节流和字符流之间的转换

字节流中的数据都是字符时,转成字符流操作更高效

打印流

打印流
字节打印流 字符打印流
PrintStream PrintWriter

在整个IO包中,打印流是输出信息最方便的类。

数据流

数据流
读取 写出
DataInputStream DataOutputStream

为了方便地操作Java语言的基本数据类型的数据,可以使用数据流。

数据流有两个类:(用于读取和写出基本数据类型的数据)

DataInputStream 和 DataOutputStream

分别“套接”在 InputStream 和 OutputStream 节点流上

猜你喜欢

转载自blog.csdn.net/Alyson_jm/article/details/81416819