IO从大的方向上分为字节流和字符流,包括四个抽象类:1、输入:Reader,InputStream类型的子类(字符,字节)2、输出:Writer,OutputStream类型的子类(字符,字节)决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):第一,考虑最原始的数据格式是什么:是否为文本?第二,是输入还是输出?第三,是否需要转换流:InputStreamReader,OutputStreamWriter?第四,数据来源(去向)是什么:文件?内存?网络?首先是字节流:InputStream的实现类(System.in返回一个输入流):1)ByteArrayInputStream:ByteArrayInputStr