• 八、IO工具类(封装Copy)


    package com.io;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    /**
     * try ...with...resource
     *
     *
     */
    public class TestIO008 {
        public static void main(String[] args) {
            //文件到文件
            try {
                InputStream is = new FileInputStream("abc.txt");
                OutputStream os = new FileOutputStream("b.txt");
                copy(is,os);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            //文件到字节数组
            byte[] datas = null;
            try {
                InputStream is = new FileInputStream("漂亮.jpg");
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                copy(is,os);
                datas = os.toByteArray();
                System.out.println(datas.length);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            //字节数组到文件
            try {
                InputStream is = new ByteArrayInputStream(datas);
                OutputStream os = new FileOutputStream("p-copy.png");
                copy(is,os);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        /**
         * 对接输入输出流
         * try ...with...resource
         * @param is
         * @param os
         */
        public static void copy(InputStream is,OutputStream os) {
            try(InputStream iso=is;OutputStream oso=os) {
                //3、操作 (分段读取)
                byte[] flush = new byte[1024]; //缓冲容器
                int len = -1; //接收长度
                while((len=is.read(flush))!=-1) {
                    os.write(flush,0,len); //分段写出
                }
                os.flush();
            }catch(FileNotFoundException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    造数--存储过程,循环
    一句话搞定python六剑客
    数据库基本操作--增删改查
    session与cookie区别与联系
    正则表达式中 group groups区别
    迭代总结(随时更新)
    postman抓包
    linux常用命令
    抓包
    jdk 11特性
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12590156.html
Copyright © 2020-2023  润新知