JavaIO流学习总结-BufferedOutputStream和BufferedInputStream基本操作练习

 

/**
 * 修改日期:2020/04/01
 * 修改人:牟松
 * 缓冲流BufferedOutputStream和BufferedInputStream基本操作练习
 * 问题:手动修改文件之后,不知道为何会出现无法从缓冲区中读取数据的问
 * 参考链接:https://blog.csdn.net/lyb1832567496/article/details/52727862/
**/

 
BufferedInputStream:
/**
 * 修改日期:2020/04/01
 * 修改人:牟松
 * BufferedInputStream:处理流(高级流),缓冲输入流
**/
package io;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
 
 
public class BISDemo01 {
    public static void main(String[] args){
        try {
              FileInputStream fis=new FileInputStream("BISDemo.txt");
              BufferedInputStream bis=new BufferedInputStream(fis);
              String content=null;
              byte[] buffer=new byte[10240];
              int flag=0;
              while((flag=bis.read(buffer))!=-1){
                   content+=new String(buffer, 0, flag);
              }
            System.out.println(content);
            bis.close();
        } catch (Exception e) {
                e.printStackTrace();
        }
    }
}
 
BufferedOutputStream:
 
package io;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
/**
 * 修改日期:2020/04/01
 * 修改人:牟松
 * BufferedOutputStream:处理流(高级流),缓冲输出流
**/
 
public class BOSDemo01 {
    public static void main(String[] args){
        try {
            FileOutputStream fos=new FileOutputStream("BOSDemo.txt");
            BufferedOutputStream bos=new BufferedOutputStream(fos);
            String content="输出流测试数据!";
            bos.write(content.getBytes(),0,content.getBytes().length);
            bos.flush();
            bos.close();
        } catch (Exception e) {
                e.printStackTrace();
        }
    }
}
 
SummaryBISAndBOS:
package io;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
  * 修改日期:2020/04/01
  * 修改人:牟松
  * 使用缓冲输出流和缓冲输入流实现文件的复制
 **/
public class SummaryBISAndBOS {
    public static void main(String[] args){
        /**
         * 1.先将文件中的内容读入到缓冲输入流中
         * 2.将输入流中的数据通过缓冲输出流写入到目标文件中
         * 3.关闭输入流和输出流
         */
        try {
            long begin=System.currentTimeMillis();
            FileInputStream fis=new FileInputStream("BISDemo.txt");
            BufferedInputStream bis=new BufferedInputStream(fis);
            FileOutputStream fos=new FileOutputStream("BOSDemo.txt");
            BufferedOutputStream bos=new BufferedOutputStream(fos);
            int size=0;
            byte[] buffer=new byte[10240];
            while((size=bis.read(buffer))!=-1){
                bos.write(buffer, 0, size);
            }
            //刷新此缓冲的输出流,保证数据全部都能写出
            bos.flush();
            bis.close();
            bos.close();
            long end=System.currentTimeMillis();
            System.out.println("使用缓冲输出流和缓冲输入流实现文件的复制完毕!耗时:"+(end-begin)+"毫秒");
        } catch (Exception e) {
             e.printStackTrace();
        }
    }
}
posted @ 2020-04-01 13:31  一个吃螃蟹的人  阅读(302)  评论(0编辑  收藏  举报