转换流:将字节流转换字符流
(1)输入字节流转换输入字符流的 转换的方法:
将输入字节流转换成输入字符流:inputStreamReader();
辅助:(一般字符流按照行读,或者读入都用BufferedReader)
BufferedReader 可以中的readLine可以一行一行的读。而read()只能一个字符读。
案例1:程序:从控制台输入字符,按行输出?
(1)system.in是返回字节流不是字符流。
(2)字节流需要转换成字符流才能输出汉字。
(3)按行输出。
InputStream in = System.in;
InputStreamReader readers = new InputStreamReader(in);
BufferedReader buf = new BufferedReader(readers);
String str = null;
while((str = buf.readLine())!=null){
System.out.println(str);
}
readers.close();
buf.close();
(2)输出字节流转换成输出字符流?
OutputStreamWrite();
(3)字符串写到一个文件并且指定编码格式?
如果是仅仅是将字符串写入文件。可以用filewriter()
同时要求指定编码格式,就需要用到转换流了。
File fi = new File("e:\\t.txt");
FileOutputStream fo = new FileOutputStream(fi);
OutputStreamWriter ww = new OutputStreamWriter(fo,"utf-8");
ww.write("现在在哪里");
ww.close();
fo.close();
(4)以指定的格式(utf-8),从文件读出数据?
File fi = new File("e:\\t.txt");
FileInputStream fin = new FileInputStream(fi);
InputStreamReader reads = new InputStreamReader(fin,"utf-8");
char[] sh = new char[1024];
int len;
while((len = reads.read(sh))!=-1){
System.out.println(new String(sh,0,len));
}
欢迎关注我的微信公众号,会分享一些文章,希望大家能一起学习: