本帖最后由 践行渐远 于 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();
}
}
|