FileInputStream类 public int read(byte[] b, int off, int len) throws IOException从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回 0。 覆盖: 类 InputStream 中的 read 参数: b - 存储读取数据的缓冲区。 off - 目标数组 b 中的起始偏移量。 len - 读取的最大字节数。 返回: 读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。 抛出: NullPointerException - 如果 b 为 null。 IndexOutOfBoundsException - 如果 off 为负、len 为负,或者 len 大于 b.length - off IOException - 如果发生 I/O 错误。
FileInputStream类
public int read(byte[] b,
int off,
int len)
throws IOException从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回 0。 覆盖:
类 InputStream 中的 read
参数:
b - 存储读取数据的缓冲区。
off - 目标数组 b 中的起始偏移量。
len - 读取的最大字节数。
返回:
读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
抛出:
NullPointerException - 如果 b 为 null。
IndexOutOfBoundsException - 如果 off 为负、len 为负,或者 len 大于 b.length - off
IOException - 如果发生 I/O 错误。
System.out.println(fis.read(b, 0, 10)); // 这里为什么会输出的是10??
这里独到10个字节,因此fis.read(b, 0, 10)返回的值是10System.out.println(b[i]); // 这里为什么输出49,50,51....... ??
这里读到的是Ascii码的0123456789,转成int就是对应就是48到57System.out.println((char)b[i]);这样打印就是0123456789了
System.out.println(b[i]); 默认是Ascii码吗?java不是用unicode码的吗?