openshell 的个人博客 openshell 的个人博客

一天很长,但十年很短。

目录
使用Java IO 文件复制
/    

使用Java IO 文件复制

一切皆为字节

计算机进行数据存储的基本单位是字节。
image.png
所以Java中字节流应运而生了。

复制文件

  • 通过字节复制数组
    private static void copyFileByByte() {
        try (FileInputStream fileInputStream = new FileInputStream("D:\\java\\io\\dir1\\a.mp4");
             FileOutputStream fileOutputStream = new FileOutputStream("D:\\java\\io\\dir2\\a.mp4");) {
            int len = 0;
            while ((len = fileInputStream.read()) != -1) {
                fileOutputStream.write(len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
  • 通过字节数组复制数组
    速度比单纯用字节复制快得不止一丁点!

    private static void copyFileByByteArray() {
        try (FileInputStream fileInputStream = new FileInputStream("D:\\java\\io\\dir1\\a.mp4");
             FileOutputStream fileOutputStream = new FileOutputStream("D:\\java\\io\\dir2\\a.mp4");) {
            byte[] bytes = new byte[1024];
            int len;
            while ((len = fileInputStream.read(bytes)) != -1) {
                fileOutputStream.write(len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
//        finally {
//            fileOutputStream.close();
//            fileInputStream.close();
//        }
    }

补充说明

JDK1.7之后异常处理有一个新特性,在try的后边可以增加一个(),在括号中可以定义流对象, 那么这个流对象的作用域就在try中有效
try中的代码执行完毕,会自动把流对象释放,不用写finally。


标题:使用Java IO 文件复制
作者:openshell
地址:http://blog.caiqz.cn/articles/2020/06/09/1591714776782.html