java I/O学习之二:转换流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsf921016/article/details/61615582

字节流:用来操作字节的输入输出,如网络传输,系统输入输出,媒体流对象

流操作的四个明确:
1.明确源和目的:
源:inputStream reader
目的:outputStream writer

2.明确数据是否是纯文本:
是:reader writer
否:inputStream outputStream

3.明确设备:
硬盘:File
键盘:System.in
内存:数组
网络:socket流

4.是否需要缓冲和转换:
缓冲:Buffer
转换:OnputStreamReader ,OutputStreamWriter

3. 实例:

1 从键盘读入,打印到控制台:

        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
        String line = null;
        while ((line = bufr.readLine()) != null) {
            bufw.write(line);
            bufw.flush();

        }
        bufr.close();
        bufw.close();

2.将一组数字排序,并输出到文件(从内存到磁盘)

//获得一个随机数组成的数组
        Random random=new Random();//上限100
        int[] arr=new int[100];
        for(int i=0;i<100;++i){
            arr[i]=random.nextInt(100);
        }
        Arrays.sort(arr);

        //直接写入文件
        BufferedWriter bufw=new BufferedWriter(new FileWriter("E:\\javaStudy\\src\\javaIO\\aFile"));
        bufw.write(Arrays.toString(arr));
        bufw.flush();
        bufw.close();

3. 读入一个文件,输出到控制台

//FileReader 是OutputStreamRead的子类,也具有将字节流转换为字符流的功能
        BufferedReader bufr=new BufferedReader(new FileReader("E:\\javaStudy\\src\\javaIO\\when you are old"));
        BufferedWriter bufw=new BufferedWriter(new PrintWriter(System.out));//将字符流转换为标准输出流(即字节流);

        String line=null;
        while ((line=bufr.readLine())!=null){
            bufw.write(line);
            bufw.flush();
        }

4.从键盘读入信息,输出到文件

BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufw=new BufferedWriter(new FileWriter("E:\\javaStudy\\src\\javaIO\\aFile"));
        String line=null;
        while((line=bufr.readLine())!=null){
            bufw.write(line);
            bufw.flush();
        }
        bufr.close();
        bufw.close();

猜你喜欢

转载自blog.csdn.net/lsf921016/article/details/61615582