【字节流】 复制各类格式文件,available()用方法

来源:互联网 发布:巴丁算法集app 编辑:程序博客网 时间:2024/06/05 12:02

字节流复制文件,available()用方法

1.FileInputStream中available()是用来求该文件大小的(多少字节).

2.但不建议使用,因为如果缓存文件过大,会导致内存溢出,崩溃。

3.尽量使用占用小一点的容器来保证内存的正常运行。

第一种用数组来缓存字节

package com.video.home;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Demo3 {public static void main(String[] args) throws IOException {//1.先读取文件FileInputStream fs = new FileInputStream("music.mp3");//2.再存入新创建文件中FileOutputStream ft = new FileOutputStream("music2.mp3");byte[] b = new byte[fs.available()];//创建一个与文件一样大小的数组来缓存数据while(fs.read(b) != -1) {ft.write(b);ft.flush();}//关闭资源ft.close();ft.close();}

第二种用自带缓存容器来存字节

package com.video.home;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Demo3 {public static void main(String[] args) throws IOException {//1.先读取文件并存入缓冲区中FileInputStream fs = new FileInputStream("music.mp3");BufferedInputStream bs = new BufferedInputStream(fs);//2.再创建一个新文件,和缓冲区,再从缓冲区中直接写入文件中FileOutputStream ft = new FileOutputStream("music2.mp3");BufferedOutputStream bo = new BufferedOutputStream(ft);//每次取1024个字节存入新文件中int b;while((b=bs.read()) != -1) {bo.write(b);}//关闭资源bo.close();bs.close();}}


原创粉丝点击