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();
            }
        }
    }
  • 相关阅读:
    Groovy入门教程
    ThreadLocal和线程同步机制对比
    交换排序—冒泡排序(Bubble Sort)
    JAVA 中BIO,NIO,AIO的理解
    java中四种阶乘的计算
    tcpdump http://www.cnblogs.com/daisin/articles/5512957.html
    strace 使用
    strace
    GDB调试
    cpu故障定位 top strace pstack
  • 原文地址:https://www.cnblogs.com/qiaoxin11/p/12590156.html
Copyright © 2011-2022 走看看