上海网站建设怎么赚钱,乐山市住房和城乡规划建设局网站,永康门业微网站建设,wordpress登陆进去插件功能逻辑#xff1a;将一个视频文件通过缓冲字节输入流进行读取#xff0c;然后再通过缓冲字节输出流将其重新拷贝输出。public static void main(String[] args) {try {FileInputStream fis new FileInputStream(Rick_and_Morty.mkv);//第二个参数指定了缓冲区…功能逻辑将一个视频文件通过缓冲字节输入流进行读取然后再通过缓冲字节输出流将其重新拷贝输出。public static void main(String[] args) {try {FileInputStream fis new FileInputStream(Rick_and_Morty.mkv);//第二个参数指定了缓冲区的size根据实际的执行时间可以优化这个数字。BufferedInputStream bis new BufferedInputStream(fis,1000000);FileOutputStream fos new FileOutputStream(Rck.mkv);BufferedOutputStream bos new BufferedOutputStream(fos,1000000);//byte数组会先从缓冲区取得数据大型文件对应的数据可以大一些小文件对应的数组可以小一些。byte[] input new byte[1000000];int count 0;long before System.currentTimeMillis();//while循环读取视频文件-1代表已经将文件的字节流全部读取了!-1则文件继续读取while (bis.read(input) ! -1) {bos.write(input);count;}//输入流一组输出流一组先打开的流后关闭bis.close();fis.close();bos.close();fos.close();long after System.currentTimeMillis();System.out.println(读取时间为 (after - before) ms);System.out.println(访问磁盘 count 次);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}此例简单的实现了一个视频文件从输入到输出的过程视频文件大小为301,199,257 bytes执行结果如下读取时间为450ms
访问磁盘302次
这是通过多次改变字节数组的大小和缓冲区初始大小得出的较优结果在实际应用中可以多次进行尝试。
而且在实际应用中带缓冲的字节输入输出流性能要优于不带缓冲区的字节输入输出流。