Java IO流04:文件字符流和缓冲字符流
2021/9/12 22:06:32
本文主要是介绍Java IO流04:文件字符流和缓冲字符流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字符编码
当编码方式和解码方式不一致时,会出现乱码
- ISO:包括ASCII码在内的一些西欧国家的文字符号
- UTF-8:针对Unicode码表的可变长度字符编码(1~3个字节)
- GBK:简体中文、扩充
文件字符流
FileReader子类
文件字符输入流,继承抽象父类字符输入流(InputStreamReader)
其read()方法从流中按字符读取数据,无论中文还是英文都能一次性读完
import java.io.FileReader; public class Hello{ public static void main(String[] args) throws Exception { //创建FileReader对象 FileReader file = new FileReader("d:\\in.txt"); int data = 0; //每次读取一个字符,无论中文还是英文都能一次性读完 // while ((data = file.read()) != -1){ // System.out.print((char)data); // } int count = 0; //自定义缓冲区时,创建的数组是字符类型 char[] ch = new char[1024]; while ((count = file.read(ch)) != -1){ System.out.println(new String(ch, 0, count)); } file.close(); } }
FileWriter子类
文件字符输出流,继承抽象父类字符输出流(InputStreamWriter)
其write()方法从流中按字符一次性读取数据,无论中文还是英文都能一次性读完
import java.io.FileWriter; public class Hello{ public static void main(String[] args) throws Exception { //创建FileReader对象 FileWriter file = new FileWriter("d:\\out.txt"); //每次读取一个字符,无论中文还是英文都能一次性读完 file.write("java是最好的编程语言"); file.close(); } }
练习:复制文件
注意:字符流是不能传输图片、文件等二进制文件的
import java.io.FileReader; import java.io.FileWriter; public class Hello{ public static void main(String[] args) throws Exception { FileReader in = new FileReader("d:\\in.txt"); FileWriter out = new FileWriter("d:\\out.txt"); int data = 0; while ((data = in.read()) != -1){ out.write(data); } in.close(); out.close(); } }
缓冲字符流(增强文件字符流)
BufferedReader子类
缓冲字符输入流,继承抽象父类输入流(Reader)
以其他字符输入流作为参数,先将数据存储在缓冲区中(8K),提高IO效率,减少访问磁盘的次数
readLine()方法可以读取一行
import java.io.BufferedReader; import java.io.FileReader; public class Hello{ public static void main(String[] args) throws Exception { FileReader re = new FileReader("d:\\in.txt"); BufferedReader br = new BufferedReader(re); // int count = 0; // char[] ch = new char[1024]; // while ((count = br.read(ch)) != -1){ // System.out.println(new String(ch, 0, count)); // } //readLine()方法可以按行打印,此时返回值不是int而是String String data = null; while ((data = br.readLine()) != null){ System.out.println(data); } br.close(); } }
BufferedWriter子类
缓冲字符输出流,继承抽象父类输出流(Writer)
newLine()方法可以自动换行
import java.io.BufferedWriter; import java.io.FileWriter; public class Hello{ public static void main(String[] args) throws Exception { FileWriter re = new FileWriter("d:\\out.txt"); BufferedWriter br = new BufferedWriter(re); for (int i = 0; i < 10; i++) { br.write("Hello"); //newLine()方法自动换行 br.newLine(); } br.close(); } }
这篇关于Java IO流04:文件字符流和缓冲字符流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南