10.分别使用字符流和字节流进行图片的复制

复制图片

字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储
而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件

package com.itheima_02;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 分别使用字符流和字节流复制图片
 * 
 * 二进制文件只能使用字节流进行复制(使用windows自带记事本打开读不懂的)
 * 文本文件的复制既可以使用字符流,也可以使用字节流
 */
public class CopyImage {
    public static void main(String[] args) throws IOException {
//      method();
        
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("1.png");
        //创建字节输出流对象
        FileOutputStream fos = new FileOutputStream("d:\\\\1.png");
        
        //一次读写一个字节数组
        int len;//用于存储读到的字节个数
        byte[] bys = new byte[1024];
        while((len = fis.read(bys)) != -1) {
            fos.write(bys,0,len);
            
            fos.flush();
        }
        
        //释放资源
        fis.close();
        fos.close();
    }

    //使用字符流图片根本就显示不出来,是一片漆黑
    private static void method() throws FileNotFoundException, IOException {
        //创建字符输入流对象
        FileReader fr = new FileReader("1.png");
        //创建字符输出流对象
        FileWriter fw = new FileWriter("d:\\1.png");
        
        //一次读写一个字符数组
        int len;//用于存储读到的字符个数
        char[] chs = new char[1024];
        while((len = fr.read(chs)) != -1) {
            fw.write(chs,0,len);
            fw.flush();
        }
        
        //释放资源
        fw.close();
        fr.close();
    }

}

推荐阅读更多精彩内容