黑马程序员技术交流社区

标题: IO流操作复制图片、mp3时,用available()方法遇到的问题! [打印本页]

作者: 践行渐远    时间: 2014-10-27 16:14
标题: IO流操作复制图片、mp3时,用available()方法遇到的问题!
本帖最后由 践行渐远 于 2014-10-27 16:16 编辑

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileInputStreamDemo {
        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {               
                FileInputStream fis = new FileInputStream("d:\\01.jpg");
                FileOutputStream fos = new FileOutputStream("d:\\copy.jpg");               
                int len = fis.available();//在此用available()方法,获取文件字节数。
              byte[] buf = new byte[len];

                fos.write(buf);
               
                fis.close();
                fos.close();
        }
}
      问题:用FileInputStream的available()方法,获取源的字节数,然后再进行写操作,最后生成的文件无法打开。
---------------------------------------------------------------------------------------------------
用以下方式,则没有问题:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileInputStreamDemo {
        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {               
                FileInputStream fis = new FileInputStream("d:\\01.jpg");
                FileOutputStream fos = new FileOutputStream("d:\\copy.jpg");               
                byte[] buf = new byte[1024];
              int len = 0;
              while((len = fis.read(buf))!=-1){
                        fos.write(buf,0,len);
              }
               
                fis.close();
                fos.close();
        }
}

作者: cxdzh    时间: 2014-10-27 16:29
你new了字节数组,直接写入文件?貌似都没读取数据到数组啊..
作者: 践行渐远    时间: 2014-10-27 16:43
哦哦,谢谢,确实是漏掉了一句。
问题代码还缺一句:fis.read(buf);

作者: 践行渐远    时间: 2014-10-27 16:44
cxdzh 发表于 2014-10-27 16:29
你new了字节数组,直接写入文件?貌似都没读取数据到数组啊..

哦哦,谢谢,:handshake。
确实是漏掉了一句,问题代码还缺一句:fis.read(buf);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2