IO流

作者: Suavitygogo | 来源:发表于2017-03-04 16:31 被阅读5次

IO流:用完流记得关闭哦:close();

流的分类:

Java中的流,可以从不同的角度进行分类。

按照数据流的方向不同可以分为:输入流和输出流,读入程序,写出到文件

按照处理数据单位不同可以分为:字节流Stream读写八位二进制和字符流Reader/Writer

读写十六位二进制

按照实现功能不同可以分为:节点流和处理流

数据流的方向不同:

输入流:

读:read

intread():读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。

intread(byte[]b):将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。

intread(byte[] b, int off, int len) :将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。

结构:

InputStream:所有输入流之字节流的父类,是一个抽象类,提供默认的read(),read(byte[] buf)...方法

1. ByteArrayInputStream(节点流): 字节数组输入流,从字节数组中读取数据。

2. FileInputStream(节点流) :从文件中读取数据,如果是一个文本文件,并且包含中文,建议用FileReader

3. PipedInputStream(节点流):多线程的环境中,线程通迅的输入流

4.ObjectInputStream(装饰流):读取序列化的java对象的流类,注:自定义的对象要实现Serializable接口才能被序列化,transient关键字(标识某个属性不被序列化), 序列化版本号serialVersionUID,为了保证在不同的java环境中,以及类的版本变化所带来的不能被正确反序列化时所带来的问题

5. SequenceInputStream(装饰流):将多个输入流,合并为一个输入流(它没有对应的输出流)

6. ZipInputStream(装饰流): 将压缩文件中的内容读取出来,压缩文件中的每一个文件,都对应一个ZipEntry对象

7. DataInputStream(装饰流):读取被DataOutputStrem写入的java基本数据类型的数据,写入的数据是根据基本数据类型所占用的字节数来决定的.String类型的数据,在前面会有2个字节来标识字符串的长度。

Reader:所有输入流之字符流的父类,是一个抽象类。

1. FileReader(节点流):读取文件,一般都读取文本文件。(能用记事本打开,并且能够正确的看到其内容的)

2. BufferedReader(装饰流):提供字符流的缓冲功能,提供了readLine()方法,可以读取一行文本

输入流优化:

输出流:写完流记得刷新缓存区flush();

写:write

voidwrite(int b) :往输出流中写入一个字节。

voidwrite(byte[] b) :往输出流中写入数组b中的所有字节。

voidwrite(byte[] b, int off, int len) :往输出流中写入数组b中从偏移量off开始的len个字节的数据。

结构:

OutputStream:所有输出流之字节流的父类,是一个抽象类,提供默认的write(),write(byte[] buf)...方法

1. ByteArrayOutputStream(节点流): 字节数组输出流,向字节数组中写入数据。

2.FileOutputStream(节点流) :将数据写入文件中,如果是一个文本文件,并且包含中文,建议用FileWriter

3.PipedOutputStream(节点流):多线程的环境中,线程通迅的输出流

4.ObjectOutputStream(装饰流):将对象写入流中。

5.ZipOutputStream(装饰流): 将ZipEntry写入压缩文件中。

6.DataOutputStream(装饰流):。将基本数据类型的数据写入流中。

Writer:所有输出流之字符流的父类,是一个抽象类。

1. FileWriter(节点流):写入文件。

2. BufferedWriter(装饰流):提供字符流的缓冲功能.

输出流优化:

数据单位不同:转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

字节流:

输入:

输出:

字符流:

输入:

输出:

File类:

1.一个File类对象,表示磁盘上的文件或目录本身信息的类,而不是文件的内容;

2. File类提供了与平台无关的方法对磁盘上的文件或目录进行操作(创建、删除、重命名).

路径:两个\\(反斜杠)等于一个/正斜杠,一般情况下用正斜杠

常用方法:

1.创建文件: new File(pathName); createNewFile();

2.创建目录:mkdir():创建路径下的目录  mkdirs():创建路径下的目录,包含所有必需但不存在的父目录。

3.删除文件:delete();

3.读文件:

FileReader fr = new FileReader(str1);

BufferedReader br = new BufferedReader(fr);

String str2 = br.readLine(); //逐行读

while (str2 != null) {

str3

str2 = br.readLine();

}

br.close();

fr.close();

4.写文件:

FileWriter fw = new FileWriter(str1);

fw.write(str2);

fw.flush();

fw.close();

5.isDirectory和isFile():根据其结果判断是否为目录或文件,如果返回结果为false并不代表不是目录或不是文件,有可能该路径代表的文件还不存在。

6.遍历文件:listFiles(); (抽象路径)目录下的所有文件(文件夹和文件)

相关文章

  • java基础-day20-IO流和StringBuffer

    IO流和StringBuffer 1. IO流 1.1 IO流概述 1.2 IO流分类 1.3 文件操作输入输出字...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • 15_IO流

    IO流介绍 IO流是一个流水模型:IO理解成水管,把数据理解成水流 IO流的分类:按照流的方向分为:输入流、输出流...

  • IO流

    一、IO流 1.1 IO的概述 IO流介绍 IO:输入/输出(Input/Output) 流:是一种抽象概念,是对...

  • java io 流

    java io 流 io 流总览 io 流主要提供四个接口 InputStream: 输入字节流 OutputSt...

  • Java IO流(一)

    IO(Input Output)流的概述 下面给出IO流的基本概述,这样可以对IO流有一个宏观上的基本了解。 IO...

  • IO流

    一、IO流的概述: 二、IO流的分类: 三、字节缓冲流: 四、字符缓冲流: 五、转换流(把字节流转换为字符流): ...

  • IO流

    IO流的使用 今天咱们来说一下JAVA中最常用的数据处理的流 IO 流,说到IO啊,玩DOTA的小伙伴们就有声音...

  • IO流

    大家好,我是IT修真院深圳分院java第4期学员,一枚正直善良的java程序员。今天给大家分享一下,Java简单的...

  • IO流

    Input Output 输入流和输出流,字节流和字符流

网友评论

    本文标题:IO流

    本文链接:https://www.haomeiwen.com/subject/kakjgttx.html