本节课我学习的主要内容有:
1.字符流
2.Unicode编码
字符流:
字符流是可以直接操作Unicode字符数据的流,它读写的单位
是字符,字符是有编码的、字符流自动进行字符集的转换:
默认情况下:
输入:是从OS操作系统字符集转换成Unicode字符集。
输出:是从Unicode字符集转化成OS操作系统默认字符集。
当需要处理字符组成的数据时,我们使用字符流会更方便。
字符流顶层结构是Reader和Writer。
Unicode编码:
Unicode编码是由国际标准化组织进行推行的字符集编码定义规范。在存储上由多种编码实现,
UTF-8/UTF-16之类的。Java内部字符的处理都是采用Unicode编码(在内存中)。实际
上就是采用UTF-16,而Unicode编码很少用于操作系统的默认字符集。我们日常使用的中文
操作系统默认字符集是GBK,所以为了防止乱码的出现,我们经常要进行转换工作。
WriterAndReaderTest01 (测试字符输入输出流及其装饰流):
package LessonForIO05;
import java.io.*;
public class WriterAndReaderTest01
{
public static void read(File file)
{
try
{
FileReader _fr1 = new FileReader(file);
BufferedReader _br1 = new BufferedReader(_fr1);
String msg;
while ((msg = _br1.readLine()) != null)
{
System.out.println(msg);
}
_br1.close();
_fr1.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public static String write(File file, String str)
{
try
{
FileWriter _fw1 = new FileWriter(file,true);
BufferedWriter _bw1 = new BufferedWriter(_fw1);
_bw1.write(str);
_bw1.newLine();
_bw1.flush();//刷新缓冲区防止写入失败。
_bw1.close();
_fw1.close();
} catch (IOException e)
{
e.printStackTrace();
}
return str;
}
public static void main(String[] args)
{
File file = new File("Test04.txt");
//传出
write(file,"helllllllllllllo");
//读入
read(file);
}
}
本篇部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情。
2020.11.13
本文章是本人学习笔记,不进行任何商用所以不支持转载请理解!也请别拿去商用!
如果觉得对你有帮助那么欢迎你随时来回顾!
只为记录本人学习历程。
毕