标签:Java fos 缓冲 len 视频文件 new null bis
缓冲输入流 BufferedInputStream,缓冲输出流 BufferedOutputStream。
缓冲流内部有一个缓冲区,缓冲区是一个字节数组,默认大小为8192。
缓冲流不直接调用系统方法进行读写操作,而是通过传入的输入输出流对象来实现。
缓冲流对象实例化必须传入输入输出流(InputStream / OutputStream)对象作为参数,或者其子类对象如(FileInputStream / FileOutputStream),可选参数size为指定缓冲区大小。
缓冲流复制视频文件示例
public class CopyVideoTest {
public static void main(String[] args) throws IOException {
//源文件必须存在,目的文件可以不存在,输出流会自动创建
File file1 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试视频1.mp4");
File file2 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试视频2.mp4");
FileInputStream fis = null;
FileOutputStream fos = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
//实例化流对象并进行绑定
fis = new FileInputStream(file1);
fos = new FileOutputStream(file2);
bis = new BufferedInputStream(fis);
bos = new BufferedOutputStream(fos);
byte[] bytes = new byte[1024];
//如果len==-1,表示已经读取完文件。如果len!=-1,表示这次实际读取的字节数目
int len = -1;
do {
len = bis.read(bytes); //尝试读取一个数组长度的数据
if (len!=-1){ //读取出数据后写入目标文件
bos.write(bytes,0,len);
}
}while (len!=-1); //文件没读取完就继续
}catch (IOException e){
e.printStackTrace();
}finally {
//关闭流,先关闭缓冲流,再关闭输入输出流
if (bis!=null){
bis.close();
}
if (bos!=null){
bos.close();
}
if (fis!=null){
fis.close();
}
if (fos!=null){
fos.close();
}
}
}
}
标签:Java,fos,缓冲,len,视频文件,new,null,bis 来源: https://blog.csdn.net/qq_43588377/article/details/120382402
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。