Java高级应用之---IO流中字符流的输入输出
字符流
###字符流所处理的数据基本单元是字符,其输入输出操作都是在字符的基础上进行,Java语言中的字符采用Unicode字符编码,每个字符占2个字节空间,而文本文件有可能采用其他类型的编码,如GBK,UTF8编码方式,因此有时需要字符编码之间的转换。
字符流的两个基类Reader,Writer,其他字符流都是由这两个抽象类派生的。
下面使用FileReader和BufferedReader读取文件的内容并输出。
注:BufferedReader类中的readLine()方法是按行读取,当读取到流的末尾时返回null,所以可以根据返回值是否为null来判断文件是否读取完毕。
1 | package com.qst.chapter01; |
下面使用FileWrite将用户输入的数据写入到指定文件中
1 | package com.qst.chapter01; |
流的分类:
按照流的流向来分,可以将流分为输入流和输出流。
- 输入流:只能从输入流中读取数据,例如scanner
- 输出流:只能向输出流中写入数据,例如System.out.println
按照流所操作的基本数据单元来分,可以分为字节流和字符流
- 字节流:所操作的基本数据单元是8位的字节(byte),输入和输出都是对字节进行操作
- 输入流:InputStream
- 输出流:OutputStream
- 字符流:所操作的基本数据单元是16位的字符(Unicode),输入输出都是对字符进行操作
- 输入流:Reader
- 输出流:Writer
按照流的角色来分,可以将流分为节点流和处理流
- 节点流:用于从/向特定的IO设备中读写数据的流,这种流被称为节点流,节点流也称为低级流,节点通常是指文件,内存等其他管道
- 处理流:对一个已经存在的流进行连接或封装,通过封装后的流来实现数据的读写功能,这种流被称为处理流,处理流也被称为高级流,包装流
注意:
- 如果进行输入输出的内容是文本内容,则使用字符流
- 如果进行输入输出的内容是二进制内容,则使用字节流
- Title: Java高级应用之---IO流中字符流的输入输出
- Author: algorain
- Created at: 2017-02-12 12:08:25
- Updated at: 2023-05-14 21:39:50
- Link: http://www.rain1024.com/2017/02/12/java-article53/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments