Java教程

java之I/O流

本文主要是介绍java之I/O流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

I/O

一、流的分类:

  1. 从流动方向上看:
    • 输入流:比如 system。in
    • 输出流:比如 system.out
  2. 从读取类型上分:
    • 字节流
    • 字符流
  3. 从发生的源头上分:
    • 节点流:直接操作目标设备对应的流。如文件流,标准输入输出流
    • 过滤流:继承带有关键字 Filter 的流。用于包装操作节点的流,方便读写各种类型的数据

二、字节流

InputStream

子类:

在这里插入图片描述

方法说明
abstract int read ()从流中读入数据需要子类覆盖,而本类中的其他带参数的read方法不是抽象方法,他们都调用read ()
int read (byte b[])读入多个字节到缓存区中,同时返回读到的字节数目,如果读完则返回-1
int read (byte b[], int off, int len)从输入流中读取最大长度为len的数据,写入数组b中从索引off开始的位置,并返回实际读取的字节数,如果读完则返回-1
方法说明
write (int b)将一个整数输出到流中(只输出低八位字节,其他二十四位忽
略)。
write (byte b[])将字节数组中的数据输出到流中。
write (byte b[], int off, int len)将数组b中从off指定的位置开始,长度为len的数据输出到流
中。
flush()刷空输出流,并将缓冲区中的数据强制送出,只有
BufferedOutputStream给出真正实现,其他流都是调用该流传
入对象的相应方法。当需要建立一个输出缓冲区,多次写入,
一次写出,一定要用BufferedOutputStream,否则写入流的数
据没有缓存功能。
close ()关闭流并释放相关的系统资源。

Outputstream

子类:

在这里插入图片描述

三、标准输入输出流

  • 标准输入,对象是键盘,java 对应类是 system.in
  • 标准输出,对象是屏幕, java 对应类是 system.out

四、字符流

Reader

子类:
在这里插入图片描述

Writer

子类:

在这里插入图片描述

字节流与字符流之间的转化:

输入的字节流转为字符流需要用到 inputstreamReader 的构造方法:

InputStreamReader ins = new InputStreamReader(System.in);
InputStreamReader ins = new InputStreamReader(new FileInputStream("test.txt"));

输出字符流转为字节流用到 OutputStreamWriterPrintWriter 的构造方法:

OutputStreamWriter outs = new OutputStreamWriter(new FileOutputStream("test.txt"));
这篇关于java之I/O流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!