美文网首页
Java学习day-18:IO流(字节流)

Java学习day-18:IO流(字节流)

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

    一、基本概念:

    1.IO基本概念:

    IO的本质就是输入输出(Input\Output);

    (1)输入(Input):指的是可以让程序从外部系统获得数据(读取外部数据);

    (2)输出(Output):指的是程序输出数据给外部系统从而可以操作外部系统(将数据写出到外部系统);

    2.数据源:

    数据源data source,提供数据的原始媒介。

    数据源分为:

    (1)源设备:为程序提供数据,一般对应输入流;

    (2)目标设备:程序数据的目的地,一般对应输出流;

    3.流的概念:

    (1)流的原理:

    1)在 Java 程序中,对于数据的输入/输出操作以“流”(stream) 方式进行;

    2)J2SDK (Java 2 Software Development Kit)提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。

    3)Java 的流类型一般位于 java.io 包中。

    4) 流是一个抽象、动态的概念,是一连串连续动态的数据集合。

    (2)流的分类:

    1)按照方向分为:输入流和输出流;

    2)按照读写单位分为:字节流和字符流;

    3)按照功能分为:节点流和处理流;

    二、文件字节流:

    1.字节输入流(InputStream):

    (1)字节流输入流InputStream是抽象类,FileInputStream继承了InputStream类;FileInputStream 读取文件内容。

    (2)构造方法:

    1) FileInputStream(File file);通过打开与实际文件的连接创建一个FileInputStrea

    2)FileInputStream(String name)通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名 name 指定。

    (3)常用方法:

     int read():从此输入流中读取一个数据字节。

    int read(byte[] b):从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。

     void close(): 关闭此文件输入流并释放与此流有关的所有系统资源。

    代码截图 结果

    2.字节输出流(OutputStream):

    (1)java.io.OutPutStream抽象类;FileOutPutStream:继承了OutputStream;文件输出流是用于将数据写入到输出流File。

    (2)构造方法:

    1)FileOutputStream(File file):创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

    2)FileOutputStream(String name): 创建一个向具有指定名称的文件中写入数据的输出文件流

    3)FileOutputStream(File file, boolean append): 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。

    4)FileOutputStream(String name, boolean append):创建一个向具有指定 name 的文件中写入数据的输出文件流。

    (3)常用方法:

    1) write(byte[] b): 将 b.length 个字节从指定 byte 数组写入此文件输出流中。

    2)write(int b): 将指定字节写入此文件输出流。

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

    代码截图 结果

    3.实现文件复制:

    1)使用输入流从源文件中将文件读取出来;

    2)使用输出流将文件写入到目的地;

    代码截图 结果

    三、文件字符流:

    1.字符输入流(Reader):

    (1)FileReader字符输出流:继承了Reader抽象类;

    (2)构造方法:

    1)FileReader(File file)  在给定从中读取数据的 File 的情况下创建一个新 FileReader。

    2)FileReader(String fileName): 在给定从中读取数据的文件名的情况下创建一个新 FileReader。

    (2)常用方法;

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

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

    3)read(CharBuffer target);试图将字符读入指定的字符缓冲区。

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

    代码截图 结果

    2.字符输出流(Writer):

    (1)FileWriter用于写入字符流。继承了OutputStreamWriter抽象类;

    (2)构造方法:

    1)FileWriter(File file):根据给定的 File 对象构造一个 FileWriter 对象。

    2)FileWriter(String fileName):根据给定的文件名构造一个 FileWriter 对象。

    3)FileWriter(File file, boolean append):根据给定的 File 对象构造一个 FileWriter 对象。

    (3)常用方法:

    1) void write( int c ):写入单个字符。

    2)void write( char[]cbuf):写入字符数组。

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

    4)void write(String str):写入字符串。

    5)abstract void flush( ):刷新该流的缓冲。

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

    代码截图 结果

    (3)使用字符流实现文件复制:

    1)创建字符输入流和输出流;

    2)使用字符输入输出流;

    3)通过循环获取文件的字节;

    4)使用read()和write分别读取和写入字符

    5)关闭程序;

    代码截图 结果

    相关文章

      网友评论

          本文标题:Java学习day-18:IO流(字节流)

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