Java IO流

目录

一.字符集

二.JavaIo流体系

三.如何提升读取和写入速度?

四.文件读取乱码问题

一.字符集

ASCII:一个字节存储,首尾是0

GBK: 两个字节存储,首位是1

Unicode:统一码,4个字节存储,容纳世界所有文字

UTF-8:Unicode的一种编码方案,英文数字占1字节,汉字占3个字节

编码和解码必须使用一致字符集,否则会乱码

二.JavaIo流体系

三.如何提升读取和写入速度?

1.使用缓冲流,缓冲流默认有8K的缓冲区,使用缓冲流比原始流要更快

2.调大每次读取的字节或字符数组,可以使原始流的速度与缓冲流的速度不相上下;

那么,字节数组是否越大越好呢?答案是否定的,当字节数组达到一定程度时,对速度的影响是微乎其微的,反而会耗用更多的内存

四.文件读取乱码问题

Java中的io流会默认使用编译器的编码,当读取的文件编码与io流编码不一致时,会出现乱码;

解决:先获取文件的原始字节流,再将其按照真实的字符集编码转成字符输入流,这样字符输入流中的字符就不会乱码

使用InputStreamReader(InputStream is , String charset)可以把原始流按照文件的字符集转成字符流

OutputStreamReader(OutputStream is , String charset) 可以按照我们想要的编码进行写

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十八岁讨厌Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值