转换流(InputStreamReader/OutputStreamWriter)
转换流(InputStreamReader/OutputStreamWriter)
可将字节流转换为字符流,把硬盘中的字节流转换为内存中的字符流。
可设置字符的编码方式
读取转换流:
package com.tiedandan.IO流.转换流; import java.io.FileInputStream; import java.io.InputStreamReader; /** * 转换流(InputStreamReader/OutputStreamWriter) * 转换流作用: * 可将字节流转换为字符流,把硬盘中的字节流转换为内存中的字符流。 * * 可设置字符的编码方式 */ public class InputStreamReaderUse { //字节流转换为字符流 public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("d:hello.txt"); InputStreamReader isr = new InputStreamReader(fis,"utf-8"); //目标文件编码格式是utf-8,这里只能用utf-8读取,否则就会产生乱码 int count = 0; while ((count=isr.read())!=-1){ System.out.println((char) count);//这里用字符流的输出方式输出了转换后的字符流文件 } isr.close(); System.out.println("执行完毕"); } }
package com.tiedandan.IO流.转换流;
import java.io.FileInputStream;
import java.io.InputStreamReader;
/**
* 转换流(InputStreamReader/OutputStreamWriter)
* 转换流作用:
* 可将字节流转换为字符流,把硬盘中的字节流转换为内存中的字符流。
*
* 可设置字符的编码方式
*/
public class InputStreamReaderUse {
//字节流转换为字符流
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("d:hello.txt");
InputStreamReader isr = new InputStreamReader(fis,"utf-8");
//目标文件编码格式是utf-8,这里只能用utf-8读取,否则就会产生乱码
int count = 0;
while ((count=isr.read())!=-1){
System.out.println((char) count);//这里用字符流的输出方式输出了转换后的字符流文件
}
isr.close();
System.out.println("执行完毕");
}
}
写入转换流:
package com.tiedandan.IO流.转换流; import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class OutputStreamWriterUse { public static void main(String[] args) throws Exception { FileOutputStream fos =new FileOutputStream("d:\\hello.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos); for (int i = 0; i < 5; i++) { osw.write("你好中国"); } osw.close(); System.out.println("执行完毕!"); } }