Java IO复制视频文件

时间:2017-09-26 15:36:46

标签: java io fileinputstream fileoutputstream

class HelloWorld {
    public static void main(String args[]) {
        File file = new File("d://1.mp4");
        FileInputStream fr = null;
        FileOutputStream fw = null;
        byte a[] = new byte[(int) file.length()];
        try {
            fr = new FileInputStream(file);
            fw = new FileOutputStream("d://2.mp4");

            fr.read(a);
            fw.write(a);
            fw.write(a);
            fw.write(a);
            fw.write(a);
            fw.write(a);

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                fr.close();
                fw.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

这里我写fw.write(a)五次,文件大小增加到5x但原来的1.mp4和copy 2.mp4都有相同的长度,即3:30分钟?

2 个答案:

答案 0 :(得分:1)

简单地复制某些文件的字节并不一定意味着它只是在用软件检查时复制了一些东西。例如,视频播放器可能会读取数据,直到遇到某个终端并且未向前看。然后该终端将存在于第一个文件数据块的末尾。

您可以使用十六进制编辑器打开新文件,并检查是否可以连续五次查看原始视频文件的数据。

答案 1 :(得分:0)

FileOutputStream fooStream = new FileOutputStream("FilePath", false);

这将覆盖内容,创建的文件大小与原始文件的大小相同。