public static void main(String[] args) throws IOException {
//convertOne();//字符转换字节
convertTwo();//字节转换字符
}
/**
* InputStreamReader是字节流转换字符流的桥梁
*/
private static void convertTwo() throws IOException {
FileInputStream fis = new FileInputStream("D:\\a.txt");
//InputStreamReader isr = new InputStreamReader(fis);//读取系统默认编码GBK
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");//设置转换的编码
char[] c = new char[1024];
int len = 0;
while((len = isr.read(c)) != -1) {
System.out.println(new String( c, 0, len));
}
isr.close();
}
/**
* OutputStreamWriter是字符流转换字节流的桥梁
* 作用:
* 指定存储字符的编码设定,防止乱码产生,统一编码
* 转换顺序:
* 现将字符文件交给转换流,转换流根据设定编码查询编码表返回指定编码然后使用字节流输出(转换流调用字节流输出)
* 参数:
* OutputStreamWriter os 使用系统默认编码进行写入GBK
* OutputStreamWriter os,charset c 使用指定编码进行写入
*/
private static void convertOne() throws IOException {
FileOutputStream fos = new FileOutputStream("D:\\a.txt", true);//是否追加写入,默认false,数据目的
//OutputStreamWriter osw = new OutputStreamWriter(fos);
OutputStreamWriter osw = new OutputStreamWriter( fos, "UTF-8");//charsetName可以写入GBK(系统默认),UTF-8,不区分大小写
osw.write("你说呢");
osw.flush();
osw.close();//关闭转换流,字节流也会被关闭
System.out.println("写入完成");
}
Java转换流-输入(InputStreamWriter)输出(OutputStreamReader)
最新推荐文章于 2024-08-19 10:43:09 发布