美文网首页
Java学习day-19:IO流(处理流)

Java学习day-19:IO流(处理流)

作者: 开源oo柒 | 来源:发表于2019-07-31 23:20 被阅读0次

一、缓冲流:

必须要结合节点流才能使用处理流。

1.文件字节流:

BufferedInputStream/BufferedOutputStream;这两个流是缓冲字节流,通过内部缓存数组来提高操作流的效率。

(1)BuferedInputStream:

该类实现缓冲的输出流。在创建BufferedInputStream时,会创建一个内部缓冲区数组

构造方法:

1)BufferedInputStream(InputStream in):创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

2)BufferedOutputStream(InputStream in, int size):创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

常用方法:

1)read():参见 InputStream 的 read 方法的常规协定。

2)read(byte[] b, int off, int len): 从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。

3)close():关闭此输入流并释放与该流关联的所有系统资源。

(2)BufferedOutputStream:

该类实现缓冲的输出流。

构造方法:

1)BufferedOutputStream(OutputStream out): 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。

2)BufferedOutputStream(OutputStream out, int size):创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。

常用方法:

1)write(int b):将指定的字节写入此缓冲的输出流。

2)write(byte[] b, int off, int len): 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。

3)flush():刷新此缓冲的输出流。

4)close():关闭此输出流并释放与此流有关的所有系统资源。

(3)使用缓冲字节流实现文件的复制:

缓冲流对文件数据的读写效率更高;字节流可以复制任何文件数据。

1)在关闭流时,应该先关闭最外层的包装流,即“后开的先关闭”。

2) 缓存区的大小默认是8192字节,也可以使用其它的构造方法自己指定大小。

代码截图 结果

2.文件字符流:

BufferedReader / BufferedWriter:字符流增加了缓存机制,大大提高了读写文本文件的效率;readLine();方法在处理文本时,是按行读取的方法。

(1)BufferedReader:

从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取;readLine()方法是特有的方法。

构造方法:

1)BufferedReader(Reader in): 创建一个使用默认大小输入缓冲区的缓冲字符输入流。

2)BufferedReader(Reader in, int sz): 创建一个使用指定大小输入缓冲区的缓冲字符输入流。

常用方法:

1)readLine(): 读取一个文本行。

2)read(char[] cbuf, int off, int len):将字符读入数组的某一部分。

3)close():关闭该流并释放与之关联的所有资源。

4)flush():刷新此缓冲的输出流。

(2)BufferedWriter:

将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

构造方法:

1)BufferedWriter(Writer out):创建一个使用默认大小输出缓冲区的缓冲字符输出流。

2)BufferedWriter(Writer out, int sz):创建一个使用给定大小输出缓冲区的新缓冲字符输出流。

常用方法:

1)write(char[] cbuf, int off, int len):写入字符数组的某一部分。

2)write(String s, int off, int len): 写入字符串的某一部分。

3)flush():刷新该流的缓冲。

4)newLine():写入一个换行分隔符。

5)close():关闭此流,但要先刷新它。

(3)使用缓冲字符流实现文本文件的复制:

代码截图 结果

二、转换流:

用来实现将字节流转化成字符流;属于处理流;

(1)InputStreamReader:

将InputStream转换为Reader;InputStreamReader 是字节流通向字符流的桥梁。

构造方法:

1)InputStreamReader(InputStream in):创建一个使用默认字符集的InputStreamReader。

2)InputStreamReader(InputStream in, Charset cs): 创建使用给定字符集的 InputStreamReader。

常用方法:

1)read(): 读取单个字符。

2)read(char[] cbuf, int offset, int length): 将字符读入数组中的某一部分。

3)close():关闭该流并释放与之关联的所有资源。

(2)OutputStreamWriter:

将OutputStream转换为Writer;OutputStreamWriter 是字符流通向字节流的桥梁。

构造方法

1)OutputStreamWriter(OutputStream out):创建使用默认字符编码的 OutputStreamWriter。

2)OutputStreamWriter(OutputStream out, Charset cs):创建使用给定字符集的 OutputStreamWriter。

常用方法:

1)write(String str, int off, int len):写入字符串的某一部分。

2)write(char[] cbuf, int off, int len):写入字符数组的某一部分。

3)flush():刷新该流的缓冲。

4)close():关闭此流,但要先刷新它。

(3)使用转换流:

代码截图 结果

三、打印流和数据流:

1.打印流:

(1)PrintStream:

1)PrintStream的输出功能非常强大,通常需要输出文本内容,都可以将输出流包装成 PrintStream 后进行输出。

2)System.out 就是 PrintStream 的一个实例,代表显示器。

(2)PrintWriter:

1)PrintStream 的对应字符流,功能相同,方法对应。

2)复制文件时可以使用PrintWriter代替BufferedWriter完成,更简单。

代码截图

2.数据流:

(1)DataInputStream / DataOutputStream:

1) 提供了可以存取所有 Java 基础类型数据(如:int,double等)和 String 的方法。

代码截图

相关文章

  • Java学习day-19:IO流(处理流)

    一、缓冲流: 必须要结合节点流才能使用处理流。 1.文件字节流: BufferedInputStream/Buff...

  • Java中的IO流

    Java中的IO流分类 输入IO流输入字节流(InputStream)处理流缓冲流(BufferedInputSt...

  • java笔记--IO流(字符流和字节流)

    IO流: 用来处理设备之间的数据传书。Java对数据的操作是通过流的方式。Java用于操作流的对象都在IO包中。流...

  • Java IO流

    IO流 在java.io.*包下,按数据流方向分为输入/输出流;按处理数据单位分为字符流(Reader/Write...

  • Java IO 节点流和字符流 学习 + 案例分析

    Java IO 节点流和字符流 学习 + 案例分析

  • Java之IO流详解

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

  • java32(IO输入与输出--01概述)

    IO流: IO流用来处理设备之间的数据传输。 java对数据的操作是通过流的方式。 java用于操作流的对...

  • Java输入输出流

    IO流 IO流用来处理设备之间的数据传输,传输是通过流的方式Java用于操作流的对象都在java.io包中流就是指...

  • (四)IO流基础

    1、IO流基本介绍 Java是通过‘流’的方式对数据进行操作,而IO(Input Output)流就是用来处理设备...

  • java中IO流详细解释

    [TOC] IO流 IO流概述及其分类 IO概念 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的...

网友评论

      本文标题:Java学习day-19:IO流(处理流)

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