Java--字符输出流--编码问题和传输数据大小差异问题

问题一:

字符流编码未指定则为平台编码,我IDEA设置的为UTF-8,用字节输出流写数据,当写的是字符a时输出的文件是GBK编码,当输出的是字符‘中’时,输出的文件是UTF-8编码,不应该始终都是UTF-8编码吗?

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"));
osw.write('a');
//osw.write('中');
osw.close();

 

问题二:

用字符流传输文本文件为什么会比源文件大一点?

BufferedReader br = new BufferedReader(new FileReader("d:\\斗破苍穹.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\a.txt"));

String line;
while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    bw.flush();
}

br.close();
bw.close();

 

第一个问题是:只对你的源码起作用,也就是你的项目里的文件编码。

第二个问题,我本地测试是没有任何问题,只多了一个字节,而且那个字节也只是最后的那个换行符。如果可以的话,能不能提供一下你的文件呢,可以上传到网盘,然后分享一下网盘链接啥的。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y