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();
            }
        }
    }
  • 相关阅读:
    网上订餐系统后台代码bug记录与解决
    vector二维数组
    力扣-树-练习题(一)
    优先队列

    并查集
    C++进制转换函数
    平衡二叉树(AVL树)定义与基本操作
    二叉查找树练习题
    树的遍历
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12590156.html
Copyright © 2011-2022 走看看