java 使用BufferedInputStream、BufferedOutputStream复制非文本文件

本文详细介绍了如何使用Java的BufferedInputStream和BufferedOutputStream类实现非文本文件的复制过程,包括创建File对象、创建节点流、进行文件读取和写入操作,以及最终关闭流以确保资源的正确释放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class BufferedInputOutputDemo 
{
public static void main(String[] args) 
{
String src = "d:\\a\\bg.gif";
String dest = "f:\\a\\bg.gif";
copyFile(src, dest);
}
//使用缓冲字节流实现非文本文件的复制;
public static void copyFile(String src, String dest) 
{
File file = new File(src); //创建一个File对象,表明要读出的文件的位置;
File file1 = new File(dest);//创建一个File对象,表明要写入的文件的位置;

FileInputStream fis = null;//先创建相应的节点流;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);//先创建相应的节点流;
fos = new FileOutputStream(file1);
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] b = new byte[10]; //文件越大,数组长度可以更大;
int len;
while((len = bis.read(b)) != -1)
{
bos.write(b, 0, len);     //实现文件的复制;
}
} catch (FileNotFoundException e) 
{
e.printStackTrace();
} catch (IOException e) 
{
e.printStackTrace();
}finally
{ //关闭流;
if(fos != null)
{
try {
fos.close();
} catch (IOException e) 
{
e.printStackTrace();
}
}
if( fis != null)
{
try {
fis.close();
} catch (IOException e) 
{
e.printStackTrace();
}
}
}

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值