下列叙述错误的是( )
StringReader,StringWriter
ByteArrayInputStream ,ByteArrayOutputStream ,CharArrayReader
PipedInputStream PipedOutputStream PipedReaderPipedWriter
处理流:InputStreamReader,OutputStreamReader
DataInputStream,DataOutputStream
PrintWriter此处的输入,输出涉及一个方向的问题,对于如图15.1所示的数据流向,数据从内存到硬盘,通常称为输出流——也就是说,这里的输入,输出都是从程序运行所在的内存的角度来划分的。
注:如果从硬盘的角度来考虑,图15.1所示的数据流应该是输入流才对;但划分输入/输出流时是从程序运行所在的内存的角度来考虑的,因此如图15.1所在的流时输出流。而不是输入流。
注:java的输入流主要是InputStream和Reader作为基类,而输出流则是主要由outputStream和Writer作为基类。它们都是一些抽象基类,无法直接创建实例。
Java中的流按照处理单位可分成两种:字节流和字符流
对计算机本身而言不存在字节流和字符流的概念所有的文件都是以二进制的形式存在的即bit流(但一个bit表示的状态太小所以以8个bit即1个Byte为单位形成字节流)
字节流面向计算机(bit),字符流面向人(char)
Java的字节流和字符流的区别:
Java提供的IO体系:
字节流:
- InputStream(字节输入流)
- OutputStream(字节输出流)
对于字节流的处理是不用经过内存的。
字符流:
- Reader(字符输入流: bit - [编码] -> char)
- Writer(字符输出流: char - [解码] -> bit)
字节流和字符流之间的桥梁:
- InputStreamReader
- OutputStreamReader