目录
ASCII:一个字节存储,首尾是0
GBK:?两个字节存储,首位是1
Unicode:统一码,4个字节存储,容纳世界所有文字
UTF-8:Unicode的一种编码方案,英文数字占1字节,汉字占3个字节
编码和解码必须使用一致字符集,否则会乱码
1.使用缓冲流,缓冲流默认有8K的缓冲区,使用缓冲流比原始流要更快
2.调大每次读取的字节或字符数组,可以使原始流的速度与缓冲流的速度不相上下;
那么,字节数组是否越大越好呢?答案是否定的,当字节数组达到一定程度时,对速度的影响是微乎其微的,反而会耗用更多的内存
Java中的io流会默认使用编译器的编码,当读取的文件编码与io流编码不一致时,会出现乱码;
解决:先获取文件的原始字节流,再将其按照真实的字符集编码转成字符输入流,这样字符输入流中的字符就不会乱码
使用InputStreamReader(InputStream is , String charset)可以把原始流按照文件的字符集转成字符流
OutputStreamReader(OutputStream is , String charset) 可以按照我们想要的编码进行写