黑马程序员:Java基础总结
编码&解码流
编码:字符串变成字节数组。
解码:字节数组变成字符串。
String-->byte[]; str.getBytes(charsetName);
byte[] -->String: new String(byte[],charsetName);
解码:字节数组变成字符串。
String-->byte[]; str.getBytes(charsetName);
byte[] -->String: new String(byte[],charsetName);
byte[] | getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
String(byte[] bytes, String charsetName) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String 。 |
-
-
UnsupportedEncodingException
- 如果指定的字符集不受支持
-
String s =
"万琪"
;
byte
[] b1 = s.getBytes(
"GBK"
);
System.
out
.println(Arrays.toString(b1));
String s1 =
new
String(b1,
"utf-8"
);
System.
out
.println(
"s1="
+s1);
//对s1进行iso8859-1编码。
byte
[] b2 = s1.getBytes(
"utf-8"
);
System.
out
.println(Arrays.toString(b2));
String s2 =
new
String(b2,
"gbk"
);
System.
out
.println(
"s2="
+s2);
InputStreamReader(InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。 |
OutputStreamWriter(OutputStream out, String charsetName) 创建使用指定字符集的 OutputStreamWriter。 |
public
static
void
readText()
throws
IOException
{
InputStreamReader isr =
new
InputStreamReader(
new
FileInputStream(
"utf.txt"
),
"gbk"
);
char
[] buf =
new
char
[10];
int
len = isr.read(buf);
String str =
new
String(buf,0,len);
System.
out
.println(str);
isr.close();
}
public
static
void
writeText()
throws
IOException
{
OutputStreamWriter osw =
new
OutputStreamWriter(
new
FileOutputStream(
"utf.txt"
),
"UTF-8"
);
osw.write(
"你好"
);
osw.close();
}