IO流练习(二)

需求:将键盘录入的数据保存到另一个文件中
源:键盘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();
    }
}

猜你喜欢

转载自blog.csdn.net/a3060858469/article/details/80546899