【java】io流之字节流转为字符流:java.io.OutputStreamWriter和java.io.InputStreamReader

时间:2023-03-09 06:30:51
【java】io流之字节流转为字符流:java.io.OutputStreamWriter和java.io.InputStreamReader
 package 文件操作;

 import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter; public class TestOutputStreamWriter {
public static void main(String[] args) throws IOException {
File file=new File("D:"+File.separator+"test.txt");
OutputStream out =new FileOutputStream(file);//若文件不存在会自动创建
//字节流转换为字符流。文件内容本质上都是以字节形式在操作系统里操作的,处理中文时需要在缓冲区进行隐式转换
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(out);
String str="Welcom!中国";
outputStreamWriter.write(str);
// outputStreamWriter.flush();//通过flush()或close()操作后内容才会被写进文件
outputStreamWriter.close();
}
}

outputStreamWriter

 package 文件操作;

 import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; public class TestInputStreamReader {
public static void main(String[] args) throws IOException {
File file=new File("D:"+File.separator+"com"+File.separator+"test.txt");
char[] chars=new char[1024];
if(file.exists()){
// file.getParentFile().mkdirs();//建议使用mkdirs而不要用mkdir,mkdirs既能创建单级目录又能创建多级目录,mkdir只能创建单级目录
// file.createNewFile();
InputStream in=new FileInputStream(file);
InputStreamReader inputStreamReader=new InputStreamReader(in);
int len=inputStreamReader.read(chars);
System.out.println("*"+new String(chars,0,len)+"*");
inputStreamReader.close();
}
}
}

InputStreamReader