需求:将一个音频文件通过读取,写入的方式复制到指定盘符下.
思路:
1.先获取文件的路径,包括需要复制的文件,和复制之后的路径和文件名
2.使用缓冲(BufferdInputStream;BufferdOutputStream)进行字节流的操作,先读取,再进行写入
3.最后记得关闭流
实现代码如下:
//创建需要copy的文件路径以及文件名
File file = new File("c:/Users/22230/Music/谭咏麟 - 讲不出再见.mp3");
//创建缓冲流以及输入字节流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//创建copy目标路径及文件名
File files = new File("d:/1.mp3");
//创建缓冲流以及输出字节流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(files));
//创建变量length接收read方法读取到末尾
int length = -1;
//创建byte[] 作为缓存区
byte[] buf = new byte[1024*4];
//使用while循环依次read进行读取,直到末尾返回-1停止
while((length = bis.read(buf))!=-1){
//将文件以字节写入
bos.write(buf);
}
//关闭输出流
bos.close();
//关闭输入流
bis.close();
ps:注意事项:
- while循环条件判断 != -1不要写成 == ;
- 记得关闭流,先开后关的顺序.(刚复制了个照片,没关流,造成了图片写入不完整!!!!)