• BufferedOutputStream


    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
    输出字节流
    --------| OutputStream  所有输出字节流的基类  抽象类
    ------------| FileOutputStream 向文件 输出数据 的输出字节流
    ------------| Bufferedoutputstream  缓冲输出字节流    BufferedOutputStream出现的目的是为了提高写数据的效率。 
                                    内部也是维护了一个8kb的字节数组而已。
     
     使用BufferedOutputStream的步骤:
         1. 找到目标文件
         2. 建立数据的输出通道
    
     
    BufferedOutputStream 要注意的细节
        1. 使用BufferedOutStream写数据的时候,它的write方法是是先把数据写到它内部维护的字节数组中。
         2. 使用BufferedOutStream写数据的时候,它的write方法是是先把数据写到它内部维护的字节数组中,如果需要把数据真正的写到硬盘上面,需要
         调用flush方法或者是close方法、 或者是内部维护的字节数组已经填满数据的时候。
         
    
     
     */
    public class Demo2 {
    
        public static void main(String[] args) throws IOException {
            //找到目标文件
            File file = new File("F:\a.txt");
            //建立数据的输出通道
            FileOutputStream  fileOutputStream = new FileOutputStream(file);
            //建立缓冲输出字节流对象
            BufferedOutputStream bufferedOutputStream  = new BufferedOutputStream(fileOutputStream);
            //把数据写出
            bufferedOutputStream.write("hello world".getBytes()); 
            //把缓冲数组中内部的数据写到硬盘上面。
            //bufferedOutputStream.flush();
            bufferedOutputStream.close();
        }
        
    }
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
    练习: 使用缓冲输入输出字节流拷贝一个图片。
    
    */
    public class CopyImage {
    
        public static void main(String[] args) throws IOException {
            //找到目标文件
            File  inFile = new File("F:\美女\1.jpg");
            File outFile = new File("E:\1.jpg");
            //建立数据输入输出通道
            FileInputStream fileInputStream = new FileInputStream(inFile);
            FileOutputStream fileOutputStream = new FileOutputStream(outFile);
            //建立缓冲输入输出流
            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            //边读边写
            int content = 0; 
            // int length = bufferedInputStream.read(buf);   如果传入了缓冲数组,内容是存储到缓冲数组中,返回值是存储到缓冲数组中的字节个数。
            while((content = bufferedInputStream.read())!=-1){ // 如果使用read方法没有传入缓冲数组,那么返回值是读取到的内容。
                bufferedOutputStream.write(content);
    //            bufferedOutputStream.flush();
            }
            //关闭资源
            bufferedInputStream.close();
            bufferedOutputStream.close();
            
            
            
        }
        
    }
  • 相关阅读:
    异步解决方案----Promise与Await
    多页应用 Webpack4 配置优化与踩坑记录
    左侧固定,右侧自适应的布局方式(新增评论区大佬教的方法)
    精读《Epitath 源码
    如何编写 Typescript 声明文件
    状态码具体解释
    LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
    kafka教程
    double x = 10 ,y = 0;y = x % 2; 这个表达式正确吗?
    mongodb mapreduce使用总结
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6391895.html
Copyright © 2020-2023  润新知