上饶建设网站,北京公司招聘,seo发贴软件,php搭建网站软件下载IO流体系(学到哪扩展到哪)#xff1a; 学习字符转换流的目的是为了什么#xff1f;
InputStreamReader---解决不同编码时字符流读取文本内容乱码的问题
OutPutStreamWrite---可以控制写出去的字符使用什么字符集编码 为什么会有乱码呢#xff1f;因为读取的文件内容编码与…IO流体系(学到哪扩展到哪) 学习字符转换流的目的是为了什么
InputStreamReader---解决不同编码时字符流读取文本内容乱码的问题
OutPutStreamWrite---可以控制写出去的字符使用什么字符集编码 为什么会有乱码呢因为读取的文件内容编码与平台运行代码默认的UTF-8编码不同导致解读出错
为什么要控制字符集编码为了满足写的文件的编码方式
一. 字符转换输入流(InputStreamReader)
目的解决不同编码时字符流读取文本内容乱码的问题
解决思路先获取文件的原始字节输入流再将其按真实的字符集编码转成字符输入流 这样字符输入流中的字符就不会乱码了
构造器 1.new InputStreamReader(new InputStream(文件地址))---默认utf-8 2.new InputStreamReader(new InputStream(文件地址),字符集编码类型) 实例读取下面文件的内容注意编码“GBK” 分析这个时候就不能上面的构造器1因为默认UTF-8编码和文件的编码GBK不同会乱码。就只能使用构造器2设置解读的编码为GBK 2.new InputStreamReader(new InputStream(文件地址),GBK)
步骤
先创建低级字节输入流再包装成字符转换输入流这个时候编写读取的编码形式再包装成缓冲流---提速 最后读取代码。 这里使用了自动关闭流的方法try-with-resource详见传送门http://t.csdnimg.cn/8hXRz
为什么这里是(textbr.readLine())!null 因为readLine() 读取一行的字符数据 没有就返回null
详见传送门http://t.csdnimg.cn/rvlP8
运行结果 二.字符转换输出流(OutputStreamWriter)
目的可以控制写出去的字符使用什么字符集编码
解决思路获取字节输出流 再按照指定的字符集编码将其转换成字符输出流以后写出去的字符就会用该字符集编码
补充刷新流知识OutputStreamWriter与BufferedWriter一样OutputStreamWriter也有flush()方法可以手动刷新输出流将缓冲区中的数据写入到目标中。但是和BufferedWriter不同的是OutputStreamWriter是在流关闭时会自动刷新缓冲区的所以在使用OutputStreamWriter时不需要手动调用flush()方法来刷新输出流。只需要在不再需要使用流时关闭流即可。
构造器OutputStreamWriter outnew OutputStreamWriter(低级字节输出流编码类型)
要控制写出去的字符使用什么字符集编码 该怎么做
1.使用String提供的getByets方法解决 String date我爱你了bytes[] ar date.getBytes(GBK)
2.使用 字节转换输出流 实现
这里介绍的是字符转换输出流喔
步骤创建低级字节输出流再包装成字符转换输出流这个时候设置写的文件编码格式再使用缓冲流进行包装--提速最后就是写数据进文件
具体实例
注意运行第二次的时候不会追加相同的数据了解决方法就是在低级字节输出流创建时的地址后加true 以上就是关于文件与代码编码不同的解决方法至此完毕。
感谢各位大佬观看求免费的赞和收藏关注喔