image.png
image.png
image.png
image.png
image.png
image.png
image.png

编码:字符编码为字节
byte[] getBytes()
byte[] getBytes(String charsetName);
解码:字节解码为字符
String(byte[] b);
String(byte[] b,String charsetName)

操作:
编码:注意输出的时候用类调用方法toString()

String s = "中国";
byte[] by = s.getBytes();
//byte[] by = s.getBytes(BGK)
//byte[] by = s.getBytes(UTF-8)
sout(Array.toString(by));

解码:注意解码和编码的方式要一致才能得到正确的字符串

String ss = String(by);
//String sss = String(by,GBK)
//String sss = String(by,UTF-8)
sout(ss);

二、字符流的编码和解码

image.png

public abstract class Writer
public abstract class Reader

.

public classs OutputStreamWriter extends Writer
public class InputStreamReader extends Reader

构造函数:

OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String charsetName)
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String charsetName)

操作:
创建对象+写数据

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("s.txt"));
osw.write("中国");
osw.close();

创建对象+读数据
读数据也有两种方式:一次读一个字符/一次读一个字符数组
方式一:

InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\sa\\s.txt"))
int ch;
while((ch=isr.read())!=-1){
    Sout((char)ch);
}
isr.close();

方式二:

InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\sa\\s.txt"))
char[] ch = new char[1024];
int len;
while ((len = isr.read(ch))!=-1){
     Sout(new String(ch,0,len));
}
isr.close();



MeeWoW
18 声望1 粉丝

加油