[Java][IOstream][转化流]以GBK读取数据用UTF-8写出数据的实例分析
2023-12-23 18:48:30
?在这里我们用到了转化流,所谓的转化流也就是实现字节流向字符流的转化。
我们都知道:Java提供了两种基础的字节流
FileInputStream可以让程序读入一个文件的信息
FileOutputStream可以让程序写出一个文件的信息
但是字节流处理的问题过于宏大,我们有时候需要处理一些微观到字符层面的数据。比方说:我们需要改变一个文件的编码。
编码格式纷繁复杂:我们知晓ascii这种支持256个字符的编码,也了解GB2312这种简体中文编码,以及GBK这种兼容性更加完善的汉字编码格式。同时知晓Unicode这种通用性编码,并且了解了UTF-8经常用作汉字的编码
这些编码类型往往集中于字符本身,因此我们想要转化一个含有若干字节的文件编码,就需要先将这些大量的字节变成字符,这个过程就是InputStreamReader
同样的,在程序中以字符的形式处理完这些编码后,我们需要将其进行输出为一个新的文件,我们会以字节流这种方式来高效快速输出,我们将这个输出的过程称为OutputStreamWriter
读到这里,想必你已经知晓了为什么我们在转化流,譬如InputStreamReader的参数里面会new一个FileInputStream 原因就是我们需要把一个字节流放到转化流中来处理
最后,请不要忘记close两种转化流,保证资源的释放
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
//地址的处理
String src = "F:\\test\\Information\\Characters\\Male.txt";
String dest = "F:\\test\\Information\\Characters\\Male_two.txt";
//转换流对象的创建
InputStreamReader ipt = new InputStreamReader(new FileInputStream(src),"GBK");
OutputStreamWriter ips = new OutputStreamWriter(new FileOutputStream(dest),"UTF-8");
int b;z
while((b=ipt.read())!=-1){
ips.write(b);
}
ipt.close();
ips.close();
}
}
文章来源:https://blog.csdn.net/qq_37511412/article/details/135172032
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!