使用了字符流中文还是乱码解决方法【Java初学者】

今天学Java的IO流的时候发现明明使用了字符流,中文还是出现了乱码。

代码如下:

import java.io.*;

public class ReaderAndWriter {
	public static void main(String args[]) throws IOException {
		File file1=new File("hello.txt");
		File file2=new File("world.txt");
		
		System.out.println(file1.getAbsolutePath());
		System.out.println(file2.getAbsolutePath());
		try {
			FileReader fis=new FileReader(file1);
			FileWriter fos=new FileWriter(file2,true);
			
			char[] a=new char[19];
			int len;
			while((len=fis.read(a))!=-1) {
				fos.write(a,0,len);
			}
			fis.close();
			fos.flush();
			fos.close();
		}
		catch(IOException e){
			System.out.println(e);
		}
	}
}

hello.txt的内容
hello.txt
world.txt为空
world.txt
运行代码后打开world.txt,发现中文是乱码。
world.txt
网上搜了一下,发现是编码格式不同的问题。
我用的是Eclipse,我的Eclipse是UTF-8编码格式。在class源文件里Alt+Enter可以查看。
Eclipse设置
分别打开hello.txt和world.txt,将其另存为,下面有个编码格式,换成和Eclipse一样的就行了。
编码格式
将world.txt中内容清除,再重新运行后,没有出现乱码。
world.txt

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值