一、基本概念:
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)关闭程序;
代码截图 结果
网友评论