1,打印流(提供了打印方法,可以将各种数据类型的数据原样打印)
字节打印流:PrintStream,构造函数可以接收的参数类型(1)file对象(2)字符串路径:String(3)字节输出流:OutputStream
字符打印流:PrintWriter,构造函数可以接收的参数类型(1)file对象(2)字符串路径(3)字节输出流:OutputStream(4)字符输出流:Writer
2,序列流SequenceInputStream:把多个流合成一个
3,管道流PipedInputStream,pipedOutputStream,多线程
4,ObjectInputStream ,ObjectOutputStream,被操作的对象需要实现Serializable接口;
5,RandomAccessFile(只能操作文件,固定模式),不是IO包中的子类,直接继承Object,但是IO包中的成员,具备读写功能,内部封装了一个数组,而且通过指针对数组的元素进行操作,通过getiFilePointer获取指针位置,通过seek改变指针的位置,
原理:内部封装了字节输入流和输出流;
只读:r:不会创建文件,会读取一个已存在的文件,如不存在,出现异常
读写:rw:文件不存在会创建,如果存在,不会覆盖;
6,操作基本数据类型
DateInputStream,DateOutputStream
7,操作字节数组
ByteArrayInputStream,ByteArrayOutputStream,不用close()关闭
8,操作字符数组
CharArrayReader,CharArrayWriter
9,操作字符串
StringReader,StringWriter
10,字符编码:
ASC:美国标准信息交换码,用一个字节的7位表示
ISO8859-1:拉丁码表,欧洲码表,用一个字节的8位表示
GB2312:中国的中文编码表
GBK:中国升级版
Unicode:国际标准码,所有文字都有两个字节表示,Java语言使用,
UTF-8:最多用3个字节表示一个字符
11,编码:字符串变成字符数组,String——byte[] ,str.getBytes( )默认GBK,str.getBytes(charsetName)指定
解码:字节数组变成字符串,byte[]——String,new String(byte[])默认GBK,new String(byte[],charsetName)指定