IO流(1)

输入流和输出流:往程序中读入的流就是输入流( InputStream Reader 的子类),从程序写出到其他介质的流就是输出流( OutputStream Writer 的子类)。
节点流和处理流:节点流为直接操作外部介质的类如 FileOutputStream FileInputStream FileWriter FileReader 等。处理流为套接在节点流上的流如缓冲流 BufferedInputStream BufferReader ,数据流 DateInputStream DateOutputStream ,转换流 InputStreamReader
字节流和字符流:以 stream 结尾的都为字节流。
 
 
 
范围: ascll 0-126       unicode 0-65535
原来很多国家和地区都有自己的编码: gbk gb2312 等,不统一。 Unicode 则统一了全世界文字的编码,一个字符占两个字节。
java 中用的是 unicode ,一个字符占两个字节, 16 .
char (字符)类型使用国际通用的 16 Unicode 字符集,所以能自动表达大多数国家的字符。   
String 字串里的每个字符都是 16 位,或者说 2 个字节、长整数,以便提供对 Unicode 字符的支持。
 
 
 
Java 所提供的所有流类型位于包 java.io 内,且都分别继承自以下四种抽象流类型。
简单理解这四个抽象类就是:写出,读入(写出,读入都是以程序为参考物的)
区别: InputStream int read ()方法的返回值范围为 0-255 (字节)
      Reader int read ()方法的返回值范围为 0-65535 (字符)
         OutputStream Writer write ()方法的区别看 API ,写得很详细。
 
 
下面分别介绍这四个抽象类:
InputStream :继承自 InputStream 的流都是用于向程序中输入数据,且数据的单位为字节( 8bit [ 这些类中的 read ()方法获取的都是 unicode 码(两字节, 16 位) ,因此对于 ascll 码中的字符可以正确读取,因为他们的 unicode 码和 ascll 码是一样的( unicode 码前一个字节为 0 ,后一个字节则为相应的 ascll 码)。但是不能读取汉字,因为汉字的 unicode 码大于 256 ,占两个字节 ].
 
 
 
OutputStream :继承自 OutputStream 的流都是用于向程序中输出数据,且数据的单位为字节( 8bit
 
 
 
Reader :继承自 Reader 的流都是用于向程序中输入数据,且数据的单位为字符( 16bit
 
 
Writer :继承自 Writer 的流都是用于程序中输出数据,且数据的单位为字符( 16bit
以上为对 IO 的总体概述,后续会写出一些类的例子。

你可能感兴趣的:(职场,休闲)