JavaTM Platform
Standard Ed. 6

java.io
�� ByteArrayInputStream

java.lang.Object
  �̳��� java.io.InputStream
      �̳��� java.io.ByteArrayInputStream
������ʵ�ֵĽӿڣ�
Closeable

public class ByteArrayInputStream
extends InputStream

ByteArrayInputStream ����һ���ڲ����������û��������������ж�ȡ���ֽڡ��ڲ����������� read ����Ҫ�ṩ����һ���ֽڡ�

�ر� ByteArrayInputStream ��Ч�������еķ����ڹرմ������Կɱ����ã�����������κ� IOException��

�����°汾��ʼ��
JDK1.0
������
StringBufferInputStream

�ֶ�ժҪ
protected  byte[] buf
          �ɸ����Ĵ������ṩ�� byte ���顣
protected  int count
          �������������������һ����Ч�ַ���������һ��������
protected  int mark
          ���е�ǰ�ı��λ�á�
protected  int pos
          Ҫ���������������ж�ȡ����һ���ַ���������
 
���췽��ժҪ
ByteArrayInputStream(byte[] buf)
          ����һ�� ByteArrayInputStream��ʹ�� buf ��Ϊ�仺�������顣
ByteArrayInputStream(byte[] buf, int offset, int length)
          ���� ByteArrayInputStream��ʹ�� buf ��Ϊ�仺�������顣
 
����ժҪ
 int available()
          ���ؿɴӴ���������ȡ������������ʣ���ֽ�����
 void close()
          �ر� ByteArrayInputStream ��Ч��
 void mark(int readAheadLimit)
          �������еĵ�ǰ���λ�á�
 boolean markSupported()
          ���Դ� InputStream �Ƿ�֧�� mark/reset��
 int read()
          �Ӵ��������ж�ȡ��һ�������ֽڡ�
 int read(byte[] b, int off, int len)
          ����� len �������ֽڴӴ����������� byte ���顣
 void reset()
          ����������λ������Ϊ���λ�á�
 long skip(long n)
          �Ӵ������������� n �������ֽڡ�
 
���� java.io.InputStream �̳еķ���
read
 
���� java.lang.Object �̳еķ���
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

�ֶ���ϸ��Ϣ

buf

protected byte[] buf
�ɸ����Ĵ������ṩ�� byte ���顣Ԫ�� buf[0] �� buf[count-1] ��ֻ�ܴ����ж�ȡ���ֽڣ�Ԫ�� buf[pos] ��Ҫ��ȡ����һ���ֽڡ�


pos

protected int pos
Ҫ���������������ж�ȡ����һ���ַ�����������ֵӦ��ʼ���ǷǸ��������Ҳ�Ӧ���� count ֵ�����������������ж�ȡ����һ���ֽ��� buf[pos]��


mark

protected int mark
���е�ǰ�ı��λ�á�����ʱĬ�Ͻ� ByteArrayInputStream ��������λ���㴦��ͨ�� mark() �����ɽ������ڻ������ڵ���һ��λ�ô���ͨ�� reset() ��������ǰ������λ������Ϊ�˵㡣

�����δ���ñ�ǣ�����ֵ�Ǵ��ݸ����췽����ƫ���������δ�ṩƫ����������ֵΪ 0����

�����°汾��ʼ��
JDK1.1

count

protected int count
�������������������һ����Ч�ַ���������һ����������ֵӦ��ʼ���ǷǸ��������Ҳ�Ӧ���� buf �ij��ȡ����� buf �����һ���ɴ��������������ж�ȡ���ֽ�λ�ô�һ��

���췽����ϸ��Ϣ

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf)
����һ�� ByteArrayInputStream��ʹ�� buf ��Ϊ�仺�������顣�û��������鲻�Ǹ��Ƶõ��ġ�pos �ij�ʼֵ�� 0��count �ij�ʼֵ�� buf �ij��ȡ�

������
buf - ���뻺������

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf,
                            int offset,
                            int length)
���� ByteArrayInputStream��ʹ�� buf ��Ϊ�仺�������顣pos �ij�ʼֵ�� offset��count �ij�ʼֵ�� offset+length �� buf.length �е���Сֵ���û��������鲻�Ǹ��Ƶõ��ġ����û������ı������Ϊָ����ƫ������

������
buf - ���뻺������
offset - ��������Ҫ��ȡ�ĵ�һ���ֽڵ�ƫ������
length - �ӻ������ж�ȡ������ֽ�����
������ϸ��Ϣ

read

public int read()
�Ӵ��������ж�ȡ��һ�������ֽڡ�����һ�� 0 �� 255 ��Χ�ڵ� int �ֽ�ֵ�������Ϊ������ĩβ��û�п��õ��ֽڣ��򷵻�ֵ -1��

�� read ��������������

ָ���ߣ�
�� InputStream �е� read
���أ�
��һ�������ֽڣ����������ĩβ���򷵻� -1��

read

public int read(byte[] b,
                int off,
                int len)
����� len �������ֽڴӴ����������� byte ���顣��� pos ���� count���򷵻� -1 ָʾ�ļ����������򣬶�ȡ���ֽ��� k ���� len �� count-pos �еĽ�С�ߡ���� k ������������ System.arraycopy ִ�еķ�ʽ�� buf[pos] �� buf[pos+k-1] ���ֽڸ��Ƶ� b[off] �� b[off+k-1] �С���ֵ k �� pos ��Ӳ����� k��

�� read ��������������

���ǣ�
�� InputStream �е� read
������
b - �洢�������ݵĻ�������
off - Ŀ������ b ����ʼƫ������
len - ��ȡ������ֽ�����
���أ�
���뻺���������ֽ�������������ѵ�����ĩβ�����������ݣ��򷵻� -1��
�׳���
NullPointerException - ��� b Ϊ null��
IndexOutOfBoundsException - ��� off ����len �������� len ���� b.length - off
������
InputStream.read()

skip

public long skip(long n)
�Ӵ������������� n �������ֽڡ�����ѵ���������ĩβ������ܻ��������ٵ��ֽڡ�ʵ���������ֽ��� k ���� n �� count-pos �еĽ�С�ߡ���ֵ k �� pos ��Ӳ����� k��

���ǣ�
�� InputStream �е� skip
������
n - Ҫ�������ֽ�����
���أ�
������ʵ���ֽ�����

available

public int available()
���ؿɴӴ���������ȡ������������ʣ���ֽ�����

����ֵ�� count - pos������Ҫ�����뻺�����ж�ȡ��ʣ���ֽ�����

���ǣ�
�� InputStream �е� available
���أ�
���������شӴ���������ȡ������������ʣ���ֽ�����

markSupported

public boolean markSupported()
���Դ� InputStream �Ƿ�֧�� mark/reset��ByteArrayInputStream �� markSupported ����ʼ�շ��� true��

���ǣ�
�� InputStream �е� markSupported
���أ�
�����������ʵ��֧�� mark �� reset �������򷵻� true�����򷵻� false��
�����°汾��ʼ��
JDK1.1
������
InputStream.mark(int), InputStream.reset()

mark

public void mark(int readAheadLimit)
�������еĵ�ǰ���λ�á�����ʱĬ�Ͻ� ByteArrayInputStream ��������λ���㴦��ͨ���˷����ɽ������ڻ������ڵ���һ��λ�ô���

�����δ���ñ�ǣ�����ֵ�Ǵ��ݸ����췽����ƫ���������δ�ṩƫ����������ֵΪ 0����

ע��readAheadLimit ���ڴ���û�����塣

���ǣ�
�� InputStream �е� mark
������
readAheadLimit - �ڱ��λ��ʧЧǰ���Զ�ȡ�ֽڵ�������ơ�
�����°汾��ʼ��
JDK1.1
������
InputStream.reset()

reset

public void reset()
����������λ������Ϊ���λ�á������ѱ������һ��λ�ã������ڹ��췽����ָ����һ��ƫ����������ñ��λ���� 0��

���ǣ�
�� InputStream �е� reset
������
InputStream.mark(int), IOException

close

public void close()
           throws IOException
�ر� ByteArrayInputStream ��Ч�������еķ����ڹرմ������Կɱ����ã�����������κ� IOException��

ָ���ߣ�
�ӿ� Closeable �е� close
���ǣ�
�� InputStream �е� close
�׳���
IOException - ������� I/O ����

JavaTM Platform
Standard Ed. 6

�ύ��������
�йظ���� API �ο����ϺͿ�����Ա�ĵ�������� Java SE ������Ա�ĵ������ĵ���������ϸ�ġ����򿪷���Ա���������Լ�������������ﶨ�塢ʹ�ü��ɺ͹�������ʾ����

��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������