本周学习
1.输入流:数据源到程序(InputStream、Reader读进来)
输出流:程序到目的地(OutputStream、Writer写进去)
节点流:可以直接从数据源或目的地读写数据
处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装,目的主要是简化操作和提高性能
节点流处于io操作的第一线,所有操作必须通过他们进行
处理流可以对其他流进行处理,提高效率或操作灵活性
字节流:按照字节读取数据(InputStream、OutputStream)
字符流:按照字符读取数据(Reader、Writer),因为文件的编码不同,从而有了对字符进行高效率操作的字符流对象
2.实现字符文件的复制
也可通过这种办法完成对图片的复制
//1.选择源
FIle fi=new File("d:\\a.txt");
File fo=new File("d:\\b.txt");
//2.选择流
FileReader fis=new FileReader(fi);
FileWriter fos=new FileWriter(fo);
//3.读或写
int b;
while((b=fis.read())!=-1){
fos.write(b);
}
//4.流的关闭,先打开后关闭,后打开先关闭
fos.close();
fis.close();
3.第二步可写成
FileInputStream fis=new FileInputStream(fi);
FileOutputStream fos=new FileOutputStream(fo);
或
//在两个流的外层套上“管子”,可以加快运行速度
FileInputStream fis=new FileInputStream(fi);
BufferedInputStream fiis=new BufferedInputStream(fis);
FileOutputStream fos=new FileOutputStream(fo);
BufferedOutputStream foos=new BufferedOutputStream(fos);