参考API:
1.继承于Reader 的read方法:read
public int read(char[] cbuf)
throws IOException将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
参数:
cbuf - 目标缓冲区
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
2.String 的构造函数有这样的:---这样写的目的:根据实际读取的字符数len的大小来进行处理
String
public String(char[] value,
int offset,
int count)分配一个新的 String,它包含取自字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。
参数:
value - 作为字符源的数组。
offset - 初始偏移量。
count - 长度。
3.char [] c = new char[];应该写成:char [] c = new char[1024];//需写明大小作者: 余松霖 时间: 2012-2-16 20:22
1.为什么在一个文件中读取内容存到一个数组要in.read(buf)这样写 就是说读一个文件里的内容存到数组里面要写成文件名.read(数组名)吗
你理解错了 char [] buf =new char[]; 你定义的这个char数组没有写大小。
比如你写成char [] buf =new char[1024]; int len =in.read(buf);这个意思就是说把从输入流的数据字符读入数组buf里边,最多读入1024个,返回的就是len也就是读取的个数。
new String(buf,o,len) 这是个构造方法。意思就是利用buf数组截取一个子数组创建一个新的字符串。从char数组buf里边从0角标位开始,len就是截取子数组的长度。