栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java:文件转换流(解决编码问题,防止出现乱码)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:文件转换流(解决编码问题,防止出现乱码)

字符集charset

也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。

GBxxx字符集:gbk、gb2312、gb18030(最新的中文码表)

InputStreamReader

FileReader可以读取idea默认编码格式(utf-8)的文件,读取系统默认编码(中文gbk)会产生乱码

gbk中文码表,使用两个字节存储一个中文,utf-8国际标准码表,使用三个字节存储一个中文

package file_main;

import java.io.FileReader;
import java.io.Reader;

public class Test2 {
	
	public static void main(String[] args) throws Exception{
		
		Reader reader = new FileReader("C:\Users\27427\Desktop\1.txt");
		// 这个文件是在电脑桌面新建的一个文件
		char[] chars = new char[1024];
		int count=reader.read(chars);
		System.out.println(new String(chars,0,count));
		reader.close();
	}
}

// 结果乱码

使用InputStreamReader来读取

package file_main;

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class Test2 {
	
	public static void main(String[] args) throws Exception{
		
		Reader r = new InputStreamReader(new FileInputStream("C:\Users\27427\Desktop\1.txt"),"gbk");
		
		char[] chars = new char[1024];
		int count=r.read(chars);
		System.out.println(new String(chars,0,count));
		r.close();
	}
}

OutputStreamWriter(父类为Writer,是字符流通向字节流的桥梁,可使用指定charset将要写入流中的字符编码成字节)

构造方法

OutputStreamWriter(OutStream out)

OutputStreamWriter(OutStream out,String charsetName)

package file_main;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class Test2 {
	
	public static void main(String[] args) throws Exception{
		
		OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("C:\Users\27427\Desktop\1.txt"),"utf-8");
		writer.write("你好!");
		writer.flush();
		writer.close();
	}
}
转换文件编码步骤
  1. 创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码名称
  2. 创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码名称
  3. 使用InputStreamReader对象相应的方法读取文件
  4. 使用OutputStreamWriter对象中相应方法,把读取的 数据写入到文件中
  5. 释放资源
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号