IO流之字节流复制视频/字节流复制图片/字节流复制文本详解

一、需求:把"D:\data\fos.txt"复制到模块目录下的"D:\data\JavaWEB\HTML\fos.txt"
分析:
    1、复制文本文件,其实就是把文本文件的内容从一个文件中读取出来(数据源),然后写入到另一个文件中(目的地)
    2、数据源:
        D:\data\fos.txt----读数据----InputStream----FileInputStream
    3、目的地:
        D:\data\JavaWEB\HTML\fos.txt---写数据----OutputStream----FileOutputStream
/*
    需求:把"D:\data\fos.txt"复制到模块目录下的"D:\data\JavaWEB\HTML\fos.txt"
    分析:
        1、复制文本文件,其实就是把文本文件的内容从一个文件中读取出来(数据源),然后写入到另一个文件中(目的地)
        2、数据源:
            D:\data\fos.txt----读数据----InputStream----FileInputStream
        3、目的地:
            D:\data\JavaWEB\HTML\fos.txt---写数据----OutputStream----FileOutputStream
 */
public class CopyTxtDemo {
    public static void main(String[] args) throws IOException {
        //根据数据源创建字节输入流对象
        FileInputStream fis=new FileInputStream("D:\\data\\fos.txt");
        //根据目的地创建字节输出流对象
        FileOutputStream fos=new FileOutputStream("D:\\data\\JavaWEB\\HTML\\fos.txt");

        //读写数据,复制文本文件(一次读取一个字节,一次写入一个字节)
        int by;
        while((by=fis.read())!=-1){
            fos.write(by);
        }
        //释放资源
        fos.close();
        fis.close();
    }
}

2、案例需求:

       把“D:\data\cc.png”复制到模块目录下的“D:\data\JavaWEB\HTML\cc.png”
实现步骤:
        根据数据源创建字节输入流对象
        根据目的地创建字节输出流对象
        读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
        释放资源
//    案例需求:
//            把“D:\data\cc.png”复制到模块目录下的“D:\data\JavaWEB\HTML\cc.png”
//    实现步骤:
//            根据数据源创建字节输入流对象
//            根据目的地创建字节输出流对象
//            读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
//            释放资源
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyJpgDemo {
    public static void main(String[] args) throws IOException {
        //根据数据源创建字节输入流对象
        FileInputStream fis = new FileInputStream("D:\\data\\cc.png");
        //根据目的地创建字节输出流对象
        FileOutputStream fos = new FileOutputStream("D:\\data\\JavaWEB\\HTML\\cc.png");

        //读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)
        byte[] bys = new byte[1024];
        int len;
        while ((len=fis.read(bys))!=-1) {
            fos.write(bys,0,len);
        }

        //释放资源
        fos.close();
        fis.close();
    }
}

3、

案例需求:
        把“D:\data\dd.avi”复制到模块目录下的“D:\data\JavaWEB\HTML\dd.avi”
实现步骤:
        根据数据源创建字节输入流对象
        根据目的地创建字节输出流对象
        读写数据,复制视频(四种方法)
        释放资源
//    案例需求:
//            把“D:\data\dd.avi”复制到模块目录下的“D:\data\JavaWEB\HTML\dd.avi”
//    实现步骤:
//            根据数据源创建字节输入流对象
//            根据目的地创建字节输出流对象
//            读写数据,复制视频(四种方法)
//            释放资源
public class CopyMp4Demo {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        long start = System.currentTimeMillis();
//		method1();
//		method2();
//		method3();
        method4();
        long end = System.currentTimeMillis();
        System.out.println(end-start);
    }

//	public static void method1() throws IOException {
//		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\data\\dd.avi"));
//		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\data\\JavaWEB\\HTML\\dd.avi"));
//		//一次读一个字节
//		int by;
//		while((by = bis.read())!=-1) {
//		bos.write(by);
//		}
//		bis.close();
//		bos.close();
//	}


//	public static void method2() throws IOException {
//		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\data\\dd.avi"));
//		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:\\data\\JavaWEB\\HTML\\dd.avi"));
//		//一次读一个字节数组
//		int len;
//		byte[] b = new byte[1024];
//		while((len = bis.read(b))!=-1) {
//			bos.write(b,0,len);
//		}
//		bis.close();
//		bos.close();
//	}

//	public static void method3() throws IOException {
//		FileInputStream fis = new FileInputStream("D:\\\\data\\\\dd.avi");
//		FileOutputStream fos = new FileOutputStream("D:\\data\\JavaWEB\\HTML\\dd.avi");
//		//一次读一个字节
//		int by;
//		while((by = fis.read())!=-1) {
//			fos.write(by);
//		}
//		fis.close();
//		fos.close();
//
//	}


    public static void method4() throws IOException {
        FileInputStream fis = new FileInputStream("D:\\data\\dd.avi");
        FileOutputStream fos = new FileOutputStream("D:\\data\\JavaWEB\\HTML\\dd.avi");
        //一次读一个字节数组
        int len;
        byte[] b = new byte[1024];
        while((len = fis.read(b))!=-1) {
            fos.write(b,0,len);
        }
        fis.close();
        fos.close();
    }

}

猜你喜欢

转载自blog.csdn.net/m0_63270506/article/details/125722924