关于乱码的一些问题

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.nio.CharBuffer;

import com.sun.org.apache.bcel.internal.generic.NEW;


public class TestCharset {

 /**
  * @param args
  * @throws Exception
  * 原理: 输入输出的都要进行转码。
  */
 public static void main(String[] args) throws Exception {
        //向C:/ss.txt文件里面写东西  默认操作系统的编码CBK
     // PrintStream ps=new PrintStream("C:/ss.txt");
  
  // 输出流输出东西必须要求输出必须制定一种编码。 没有的话,就是操作系统的编码CBK
//     PrintStream ps=new PrintStream("C:/ss.txt","utf-8"); 
//     System.setOut(ps);
//  System.out.println("潘鹤");
//  ps.close();
 

  
    // 写到文件里面去   也要制定一种编码   "utf-8" 
//  FileOutputStream  fos= new FileOutputStream("C:/ss.txt");
//  fos.write("中国".getBytes("utf-8"));
//    
  
  // 用底层的流去写数据,写到文件里面  要制定编码 "utf-8"
     FileOutputStream fos1= new FileOutputStream("C:/ss.txt");
        OutputStreamWriter  os= new OutputStreamWriter(fos1,"utf-8");
        os.write("中国");
        os.close();
       
        
      // 从文件里面读取    控制台:乱码  
        // 原理:我们从文件里面读取的写的时候是UTF-8的码,而读取出来的时候是 操作系统的码
//  FileReader fr=new FileReader("C:/ss.txt");
//  char[] cbuf=new char[1024];
//  int len=fr.read(cbuf);
//  System.out.println(new String(cbuf,0,len));
  
  //从文件里面读取    控制台: 中国
        // 我们在输出的时候也要制定是以哪种编码方式进行输出 "utf-8" ,所以不好乱码
  FileInputStream  fis= new FileInputStream("C:/ss.txt");
  InputStreamReader  is=new InputStreamReader(fis,"utf-8");
  char[] cbuf1=new char[1024];
  int len1=is.read(cbuf1);
  System.out.println(new String(cbuf1,0,len1));
  
      
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值