字符集
ASCII字符集:包含26个大小写字母,数字以及一些特殊符号,都是用一个字节来存储。
GBK字符集:兼容ASCII字符集,包含汉字,字母和数字占一个字节,汉字占两个字节。汉字的第一个字节的第一位必须是0,字母的第一个字节的第一位必须是0。
Unicode字符集:全世界通用的字符集,有以下几种分类:
- UTF-8:字母和数字占一个字节,汉字占3个字节,极少数的字符占4个字节。
- UTF-16:常见的汉字占2个字节,一些特殊的汉字占4个字节。
- UTF- 32:每个字符都占4个字节。
编码和解码
将一个字符串转换为字节数组,使用指定的字符编码:String(byte[ ] bytes, String charsetName)
public static void main(String[] args) throws Exception {
// 1、编码
String data = "a我b";
byte[] bytes = data.getBytes(); // 默认是按照平台字符集(UTF-8)进行编码的。
System.out.println(Arrays.toString(bytes));
// 按照指定字符集进行编码。
byte[] bytes1 = data.getBytes("GBK");
System.out.println(Arrays.toString(bytes1));
// 2、解码
String s1 = new String(bytes); // 按照平台默认编码(UTF-8)解码
System.out.println(s1);
String s2 = new String(bytes1, "GBK");
System.out.println(s2);
}
CharSet
是一个表示字符集的类,提供了用于处理字符编码的工具和方法,是一个抽象类,可以用于字符编码和解码操作。
常用方法
CharSet.forName(String str):获取str的字符集
name():获取字符集的名称
defaultCharset:返回Java虚拟机的默认字符集
标准字符集StandardCharsets
StandardCharsets是Java标准库中的一个枚举类,提供了一些标准字符集常量,这些常量可以方便的引用。
- UTF-8 : UTF-8 编码,通常⽤于存储和传输⽂本数据。常量: StandardCharsets.UTF_8 。
-
UTF-16 :UTF-16 编码,⽤于表⽰ Unicode 字符集。常量: StandardCharsets.UTF_16。
-
. UTF-16LE :UTF-16 Little Endian 编码,低字节序的 UTF-16 编码。常量: StandardCharsets.UTF_16LE 。
- US-ASCII :US-ASCII 编码,⽤于表⽰美国标准 ASCII 字符集。常量: StandardCharsets.US_ASCII 。
-
ISO-8859-1 : ISO-8859-1 编 码 , 也 称 为 Latin-1 , ⽤ 于 表 ⽰ 西 欧 语 ⾔ 字 符 集 。 常 量 : StandardCharsets.ISO_8859_1 。
使用IO操作文件
File对象只能对文件进行操作,不能操作文件内容。
File类的构造方法
public File(String pathname):根据文件路径名去创建File对象
public File(String parent, String child):根据父路径和子路径创建对象
public File(File parent, String child):父路径响应文件对象和子路径名字创建对象