流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。
下面,小编具体演示一下,如何使用I/O流。
【大家也可以关注微信GZH进行查阅】
一,I/O流代码
public class SimpleIOTest {
public static void main(String[] args) throws IOException {
//1,创建源文件
//filesrc.txt 如果找不到,则默认自动创建。
//这里我们提前创建该文件,然后把文件内容输出到新的文件中
//新文件filetag.txt 不用我们创建,程序运行后会自动创建
File filesrc = new File("filesrc.txt");
//2,创建目标文件
File filetag = new File("filetag.txt");
//3,创建输入节点流
FileReader reader = new FileReader(filesrc);
//4,创建输出节点流
FileWriter writer = new FileWriter(filetag);
//5,读取文件到内存中,并写入硬盘的另一个文件中
/**
* 每次读取5个字符
* 第一次读取后,chars[]里面为:[h][e][l][l][o]
* 第二次读取后,chars[]里面为:[w][o][r][l][d]
* 第三次读取后,chars[]里面为:[1][2][3][l][d],注意此处,
*/
//设置每次只读取5个字符到字符数组里面做暂存,也可以设置其他数值
char[] chars = new char[5];
//长度,用于记录每次从文件中读取到的字符个数,输出时用到
int len;
while ((len = reader.read(chars)) != -1){
//读取了多少len个字符,就输出多少
writer.write(chars,0,len);
}
//6,关闭流资源
writer.close();
reader.close();
}
}
提前创建的 filesrc.txt 如下:
运行程序,会发现生成了 新的文件,并且文件内容和 filesrc.txt 一样。
这样,我们就完成从一个硬盘文件,复制内容,到另一个硬盘文件。
用到的就是 Java I/O 流操作。
关于I/O流操作,还有很多其他的操作方式,用的输入输出流也不尽相同。
这里小编先演示了一种 FileReader/FileWriter 流。
后面,我将会陆续推出文章,详细演示其他各种流的用法,包括但不限于 FileInputStream/FileOutputStream、BufferedInputStream/BufferedOutputStream、InputStreamReader/OutputStreamReader 等
今天的内容就到这里啦!