基础复习十二、IO流复习

IO流!!

基础复习十二、IO流复习_第1张图片

流是一种实现数据交换技术的核心,比较常见的流使用在:文件操作、网络数据传输等,流由两大核心部分构成:input、output

对流的使用就分为两种操作:读、写

java中所有跟流有关的类都来自于java.io包

流的分类

java-IO将流分为几种类别:

1、按流向分:输入和输出

2、按类型分:字节和字符

3、按功能分:节点流和处理流

基础复习十二、IO流复习_第2张图片

字节流

所谓字节流,其实就是将数据以字节为单位进行读写相关操作,字节流一般用于对一些二进制文件(图片,音频,视频等)进行读写操作,java中的字节流都来自以下两个抽象类

1.InputStream(字节输入流)

2.OutputStream(字节输出流)

InputStream类

InputStream类是所有字节输入流的父类,是一个抽象类,常用方法包含以下

  1. available():获取当前流中的可读字节数

  2. close():关闭此流

  3. read():从流中读取一个字节,返回读取到的字节

  4. read(byte[] b):将流中读取到的字节存入到指定的字节数组中,返回真实读取的长度,读取不到返回-1

  5. read(byte[] b,int offset,int len):将流中读取的字节存入到指定的字节数组中(跳过offset个字节存储,存储长度为len),读取不到返回-1

 常见子类有:FileInoutStream  ByteArrayInputStream  ObjectInputStream  FilterInputStream

OutputStream类

OutputStream类是所有字节输出流的父类,是一个抽象类,常用方法如下:

  1. write(byte[] b):将字节数组中的内容写入输出源(文件,网络,内存)

  2. write(byte[] b,int offset,int len):将字节数组中的内容从offset开始写入len长到输出源

  3. write(int b):将一个字节写入输出源

  4. flush():将流中的数据强制刷新到输出源

  5. close():关闭此流

 常见子类有:FileOutputStream  ByteArrayOutputStream  ObjectOutputStream  FilterOutputStream

字符流

字符流,是以字符的形式对输入输出源操作,通常情况下,一个字符表示两个字节,但是在以下unicode编码,如UTF-8则使用三个字节表示,但是由于字符流的特殊性,一般字符流主要操作一些文本输入输出源(文本文档,记事本等字符数据);java中所有的字符都从以下连个抽象类继承:

1.Reader字符输入流

2.Writer字符输出流

Reader

字符输入流,是所有字符输入流的父类,是一个抽象类,内部常见方法有:

  1. read():读取并返回一个字符

  2. read(char[] c):将从流中读取的字符存储到字符数组

  3. read(char[] c,int offset,int len):将从流中读取的字符存入字符数组(跳过offset个字节,写入len长)

  4. ready():返回此流是否准备好被读取的状态

  5. close():关闭此流

常见子类有:InputStreamReader  BufferedReader  FilterReader PipedReader

常见间接子类: FileReader

Writer类

字符输出流,是所有字符输出流的父类,是是个抽象类,内部的常见方法如下

  1. append(char c):向流中追加一个字符

  2. append(CharSequence c):向流中追加一个字符序列(字符串)

  3. witer(String s):写入一个字符串到目标输出源

  4. witer(char[] c):写入字符数组到目标输出源

 常见的子类有:OutStreamReader  BufferedWriter  FilterWriter  PipedWriter

常见的间接子类:FileWriter

转换流、缓冲流、打印流

转换流

java-io中的转换流主要分为两个:

1.InputStreamReader   将字节流转换为字符流

2.OutputStreamWriter   将字符流转换为字节流

缓冲流

缓冲流的出现主要为了提高节点流的读取和写入效率。使用方式通常为将其他节点流包装起来

java-io包中的缓冲流分为以下几个:

1.BufferedReader

2.BufferedWriter

3.BufferedInputStream

4.BufferedOutputStream

打印流

在java-io包中还提供了两个特殊的流,这个两个流只有输出,没有输入

1.PrintStream  字节打印流

2.PrintWriter  字符打印流

打印流通常可以对其他输出流(Writer,OutputStream)以及文件(File)进行包装,然后通过提供的相关API操作这些流,常见构造器:

  1. PrintStream

    1. PrintStream(File file)

    2. PrintStream(String fileName)

    3. PrintStream(OutputStream os)

    4. PrintStream(OutputStream os,boolean autoFlush)

  2. PrintWriter

    1. PrintWriter(File file)

    2. PrintWriter(String fileName)

    3. PrintWriter(OutputStream os)

    4. PrintWriter(OutputStream os,boolean autoFlush)

    5. PrintWriter(Writer w)

    6. PrintWriter(Writer w,boolean autoFlush)

你可能感兴趣的:(复习,java,io流)