本帖最后由 smile_joe 于 2013-4-23 20:13 编辑
package cn.joe;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test9 {
public static void main(String[] args) throws IOException {
copyStandard();
}
private static void copyStandard() throws FileNotFoundException,
IOException {
// 定义成成员变量
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 创建一个文件输入流
fis = new FileInputStream("【漫步时光】不是往事的流年 - NJ一念.mp3");
// 创建一个文件输出流
fos = new FileOutputStream("C:/111.mp3");
// 长度为1024的byte数组
byte[] arr = new byte[1024];
int len;
while ((len = fis.read(arr)) != -1)
fos.write(arr, 0, len);
// fos.write(len);//可能会出现多写进字节
} finally {
try {
if (fis != null)
fis.close();
} finally {
if (fos != null)
fos.close();
}// 标准的拷贝方法
}
}
}
请问在用fos写入的时候,为了避免会写入多的字节;使用了write(byte [] b,int off,int len)方法.
但是怎么都想不通, len=fis.read(arr)不就是1024吗?怎么能说从0开始,到"len"个字节,实在想不
通这个len的定义,请帮忙说说,非常感谢.... |