import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*java中字符串的编码
* 编码表:把计算机底层的二进制数据转换成我们能看懂的字符
* ASCII码表
* GB2312 完全包含ASCII码表 ----GBK
* Unicode:所有的字符都占两个字节
* UTF-8:长度可变的码表
* ANSI 本地编码表:gbk
* java中的字符串默认使用ANSI(gbk)
*
* 乱码:编码保持前后一致就可以解决
* */
public class EncoderDemo {
public static void main(String[] args) throws IOException {
String s = "高薪就业";
byte[] bys = s.getBytes("UTF-8");//通过默认编码转换成字节数组
FileOutputStream fos = new FileOutputStream("a.txt");
fos.write(bys);
fos.close();
FileInputStream fis = new FileInputStream("a.txt");
byte []bys2 = new byte[1024];
int len = fis.read(bys);
System.out.println(new String(bys2,0,len,"UTF-8"));
}
}
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
/*
* 字符流中的编码
* 1 对字符的编码进行修改
* 2 在文件中修改编码集
* 字符流 = 字节流 + 编 码
*
* */
public class EncodedDemo2 {
public static void main(String[] args) throws IOException {
// 第一种方法
FileWriter fw = new FileWriter("b.txt");
String s = "月薪过万";
//byte[] bys = s.getBytes("UTF-8");
fw.write(s);
fw.close();
//第二种方法
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"),"UTF-8");
osw.write("hello");
osw.close();
}
}