11.8.md 1.7 KB

11.8 �ڶ������ӣ�����д

����д�������к��ձ����Ϊ���������ǻ������뵽��д�ļ������棨�����ֽڻ��ַ�����Ƭ������׼�����������׼�����Լ��������ӡ��ܵ��ȵȣ����߶�д���ǵ��Զ������͡�Ϊ���Ǵ��뾡����ͨ�ã�Go ��ȡ��һ�µķ�ʽ����д���ݡ�

io ���ṩ�����ڶ���д�Ľӿڣ�io.Reader �� io.Writer

type Reader interface {
    Read(p []byte) (n int, err error)
}

type Writer interface {
    Write(p []byte) (n int, err error)
}

ֻҪ����ʵ���˶�д�ӿڣ��ṩ Read() �� Write �������Ϳ��Դ�����ȡ���ݣ�������д�����ݡ�һ������Ҫ�ǿɶ��ģ�������ʵ�� io.Reader �ӿڣ�����ӿ�ֻ��һ��ǩ���� Read(p []byte) (n int, err error) �ķ��������ӵ������Ķ����϶�ȡ���ݣ����Ѷ��������ݷ�������е��ֽ���Ƭ�У�Ȼ�󷵻ض�ȡ���ֽ�����һ�� error �������û�д��������� 'nil'������Ѿ����������β�ˣ��᷵�� io.EOF("EOF")�������ȡ�Ĺ����з����˴��󣬾ͻ᷵�ؾ���Ĵ�����Ϣ�����Ƶأ�һ������Ҫ�ǿ�д�ģ�������ʵ�� io.Writer �ӿڣ�����ӿ�Ҳֻ��һ��ǩ���� Write(p []byte) (n int, err error) �ķ���������ָ���ֽ���Ƭ�е�����д��������Ķ����Ȼ�󷵻�ʵ��д����ֽ���һ�� error �������û�д��������� nil����

io ����� Readers �� Writers ���Dz�������ģ�bufio �����ṩ�˶�Ӧ�Ĵ�����IJ������ڶ�д UTF-8 ������ı��ļ�ʱ�����������á��� ��12�� ���ǻῴ��ʵսʹ�����ǵĺܶ����ӡ�

��ʵ�ʱ���о����ܵ�ʹ����Щ�ӿڣ���ʹ�����ø�ͨ�ã��������κ�ʵ������Щ�ӿڵ�������ʹ�ö�д������

����һ�� JPEG ͼ�ν�������ͨ��һ�� Reader �����������Խ������Դ��̡��������ӻ��� gzip ѹ���� HTTP ���е� JPEGͼ�����ݣ����������κ�ʵ����Reader �ӿڵĶ���

����