按照“流”的数据流向,可以将其化分为:输入流和输出流。
按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!
字节流的抽象基类:
InputStream,OutputStream
字符流的抽象基类:
由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀,如InputStream的子类FileInputStream,Reader的子类FileReader。
字符流
Writer:字符输出流
iter是字符输出流的基类,Writer的主要方法如下:
Writerappend(charc)将指定的字符附加到此作者
Writerappend(CharSequencecsq)将指定的字符序列附加到此作者
Writerappend(CharSequencecsq,intstart,intend)将指定字符序列的子序列附加到此作者
abstractvoidclose()关闭流,先刷新
abstractvoidflush()刷新流
voidwrite(char[]cbuf)写入一个字符数组。
abstractvoidwrite(char[]cbuf,intoff,intlen)写入字符数组的一部分
voidwrite(intc)写一个字符
voidwrite(Stringstr)写一个字符串
voidwrite(Stringstr,intoff,intlen)写一个字符串的一部分
我们知道IO流主要是用于操作文件的,但是从上面我们发现Writer的直接子类中好像并没有直接操作文件,但是细心的你注意到,在Writer的子类OutputStreamWriter的子类中有一个类叫做FileWriter,File这个单词我们很熟悉的一个文件。
上一篇:C语言中有哪些变种
下一篇:RxHttp的原理是什么