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

一、基本概念:

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)关闭程序;

代码截图
结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容