zoukankan      html  css  js  c++  java
  • 八、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();
            }
        }
    }
  • 相关阅读:
    集合赋值及for循环删除符合条件的元素
    shiro系列12:rememberme(记住我)
    shiro系列11:缓存
    shiro系列10:会话管理
    shiro系列8:授权源码解析
    shiro系列7:拦截器
    shiro系列6:授权
    shiro系列5:Realm
    shiro系列4:认证源码解析
    shiro系列3:MD5盐值加密认证流程
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12590156.html
Copyright © 2011-2022 走看看