需求:将键盘录入的数据保存到另一个文件中
源:键盘InputStream Reader
是不是纯文本?是,采用Reader
设备:键盘,对应的流对象是System.in
不是选择Reader吗?System.in对应的不是字节流吗?
为了操作键盘的文本数据方便,转成字符流安装字符串操作是最方便的,所以既然明确了Reader,那么就将System.in转换成Reader
用Reader体系中的转换流InputStreamReader
InputStreamReader isr=new InputStreamReader(System.in);
需要提高效率吗?要,用BufferedReader
BufferedReader bufr=new BufferedReader(isr);
目的:OutputStream Writer
是否为纯文本? 是,用Writer
设备:硬盘,一个文件,使用FileWriter
FileWriter fw=new FileWriter(new File(“a.txt”));
需要提高效率吗?要
BufferedWriter bufw=new BufferedWriter(fw);
public class Test2 {
public static void main(String agrs[]) throws Exception{
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw=new BufferedWriter(new FileWriter("d:/save.txt"));
String str=null;
while((str=bufr.readLine())!=null){
bufw.write(str);
bufw.newLine();
bufw.flush();
if("over".equals(str)){
break;
}
}
bufw.close();
bufr.close();
}
}
想要把录入的数据按照指定的编码表,将数据存到文件中
指定的编码表只有转换流可以指定OutputStreamWriter,而该转换流对象要接收一个字节输出流,而且还是可以操作文件的输出流用
FileOutputStream OutputStreamWriter osw=new OutputStreamWriter
(new FileOutputStream("d.txt"),"utf-8")
转换流:字符和字节之间的桥梁,通常,涉及到字符编码时,需要用到转换流
public class Test2 {
public static void main(String agrs[]) throws Exception{
BufferedReader bufr=new BufferedReader(new InputStreamReader(new FileInputStream("d:/a.txt"),"utf-8"));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:/b.txt"),"utf-8"));
String str=null;
while((str=bufr.readLine())!=null){
bufw.write(str);
bufw.newLine();
}
bufw.close();
bufr.close();
}
}
将一个文本数据文件打印到控制台上
public class Test2 {
public static void main(String agrs[]) throws Exception{
BufferedReader bufr=new BufferedReader(new FileReader("d:/a.txt"));
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
String str=null;
while((str=bufr.readLine())!=null){
bufw.write(str);
bufw.newLine();
}
bufw.close();
bufr.close();
}
}