黑马程序员技术交流社区
标题:
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