日期:2014-05-19  浏览次数:20790 次

一个关于java中流的问题。谢谢指教。
有两个代码。
第一个代码中:为什么11行中len = bis.read(buf)可以加多个buf呢?api没有找到这样的方法。
第二个代码中:为什么13行此时的却不能配合着7行在13行后加多个buf(即12行代码)。
import java.io.*;

public class TestInputStreamOutputStreamCopy_3{
public static void main(String[] args) throws Exception{
BufferedInputStream bis = new BufferedInputStream( new FileInputStream("E:\\IBM教学\\java\\lesson_io\\妹妹来看我.mp3"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:/zhangsan.haha"));
byte[] buf = new byte[1024];

int len;

len = bis.read(buf);//11行。

while (-1 != len){
bos.write(buf, 0, len);//ok
len = bis.read(buf);
}
bos.flush();

bos.close();
bis.close();
}
}

第二段代码:
import java.io.*;

public class Z{
public static void main(String[] args) throws Exception{
FileReader fr = new FileReader("D:\\programme\\Java\\自己敲的源代码\\Z.java");

//byte[] buf = new byte[1024];//7行。

int ch;
int cnt = 0;

//ch = fr.read(buf);//12行
  ch = fr.read();//13行
while (-1 != ch){
++cnt;
System.out.printf("%c", (char)ch);
ch = fr.read(buf);
}
System.out.printf("该文件字符的个数是:%d\n", cnt);
fr.close();
}
}


------解决方案--------------------
不错 找到错误就是进步嘛
------解决方案--------------------
最近我也遇到了IO流的问题,顺便再此围观下。