输入流与输出流
Reader类是在Java的I/O中读字符的父类,而InputStream类是读字节的父类,InputStreamReader类就是关联字节到字符的桥梁,它负责在I/O过程中处理读取字节到字符的转换,而对具体字节到字符的解码实现,它又委托了StreamDecoder去做,在StreamDecoder解码过程中必须由用户指定charset编码格式
写的情况也类似,字符的父类是Writer,字节的父类OutputStream,通过OutputStreamWriter转换字符到字节。同样,StreamEncoder类负责将字符编码成字节,编码格式和默认编码规则与解码是一致的。
String file = "D:/stream.txt";
String charset = "UTF-8";
//写字符转换成字节流
FileOutputStream outputstream = new FileOutputStream(file);
OutputStreamWriter writer = new OutputStreamWriter(outputstream,charset);
try{
writer.write("这是要保存的中文字符");
}finally{
writer.close();
}
//读取字节转换成字符
FileInputStream inputstream = new FileInputStream(file);
InputStreamReader reader = new InputStreamReader(inputstream,charset);
StringBuffer buffer = new StringBuffer();
char[] buf = new char[64];
int count = 0;
try(
while((count = reader.read(buf))!=-1){
buffer.append(buf,0,count);
}finally(
reader.close();
}