java中的io
Posted phililps
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的io相关的知识,希望对你有一定的参考价值。
最基本的是根据处理数据类型的不同分为:字符流和字节流
字节流:数据流中最小的数据单元是字节
字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
字符流的由来: Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表
最常用的字节流是inputstream和OutputStream,是其他字节流的父类;
最常用的字符流父类是Reader和Writer,InputStreamReader是一个连接字节流和字符流的桥梁,它将字节流转变为字符流; OutputStreamWriter是OutputStream到Writer转换的桥梁,
个人在理解这些内容时候认为,电脑中磁盘上存的文件都是以字节形式存储,
inputstream和OutputStream可以直接去操作这些文件,所以认为其是字节流
例如 InputStream fis = new FileInputStream("d:/a.txt");
read = fis.read();
System.out.println(read);
而InputStreamReader,OutputStreamWriter等都是需要借助FileInputStream、OutputStream去操作,所以理解其为字符流
例如 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("d:/a.txt"),"UTF-8"));
String line = br.readLine();
System.out.println(line);
while((line = br.readLine())!=null) {
System.out.println(line);
}
br.close();
以上是关于java中的io的主要内容,如果未能解决你的问题,请参考以下文章