首页

关于dwr源码包中的CopyUtils复制工具类常见应用场景源码分析

标签:CopyUtils,复制工具类,DWR     发布时间:2018-04-17   

一、前言

关于dwr的源码包org.directwebremoting.util.CopyUtils复制克隆工具类,对二进制字节输出流、输出文本复制转换copy、输入InputStream输出流OutputStream的复制转换、文本输入Reader输出Writer复制转换、输入流InputStream文本Writer输出转换、字符串输出流的输出复制copy转换等。

二、源码说明

package org.directwebremoting.util;@b@@b@import java.io.ByteArrayInputStream;@b@import java.io.IOException;@b@import java.io.InputStream;@b@import java.io.InputStreamReader;@b@import java.io.OutputStream;@b@import java.io.OutputStreamWriter;@b@import java.io.Reader;@b@import java.io.StringReader;@b@import java.io.Writer;@b@@b@public class CopyUtils@b@{@b@  private static final int DEFAULT_BUFFER_SIZE = 4096;@b@@b@  public static void copy(byte[] input, OutputStream output)@b@    throws IOException@b@  {@b@    output.write(input);@b@  }@b@@b@  public static void copy(byte[] input, Writer output)@b@    throws IOException@b@  {@b@    ByteArrayInputStream in = new ByteArrayInputStream(input);@b@    copy(in, output);@b@  }@b@@b@  public static void copy(byte[] input, Writer output, String encoding)@b@    throws IOException@b@  {@b@    ByteArrayInputStream in = new ByteArrayInputStream(input);@b@    copy(in, output, encoding);@b@  }@b@@b@  public static int copy(InputStream input, OutputStream output)@b@    throws IOException@b@  {@b@    byte[] buffer = new byte[4096];@b@    int count = 0;@b@    int n = 0;@b@    while (-1 != (n = input.read(buffer)))@b@    {@b@      output.write(buffer, 0, n);@b@      count += n;@b@    }@b@    return count;@b@  }@b@@b@  public static int copy(Reader input, Writer output)@b@    throws IOException@b@  {@b@    char[] buffer = new char[4096];@b@    int count = 0;@b@    int n = 0;@b@    while (-1 != (n = input.read(buffer)))@b@    {@b@      output.write(buffer, 0, n);@b@      count += n;@b@    }@b@    return count;@b@  }@b@@b@  public static void copy(InputStream input, Writer output)@b@    throws IOException@b@  {@b@    InputStreamReader in = new InputStreamReader(input);@b@    copy(in, output);@b@  }@b@@b@  public static void copy(InputStream input, Writer output, String encoding)@b@    throws IOException@b@  {@b@    InputStreamReader in = new InputStreamReader(input, encoding);@b@    copy(in, output);@b@  }@b@@b@  public static void copy(Reader input, OutputStream output)@b@    throws IOException@b@  {@b@    OutputStreamWriter out = new OutputStreamWriter(output);@b@    copy(input, out);@b@@b@    out.flush();@b@  }@b@@b@  public static void copy(String input, OutputStream output)@b@    throws IOException@b@  {@b@    StringReader in = new StringReader(input);@b@    OutputStreamWriter out = new OutputStreamWriter(output);@b@    copy(in, out);@b@@b@    out.flush();@b@  }@b@@b@  public static void copy(String input, Writer output)@b@    throws IOException@b@  {@b@    output.write(input);@b@  }@b@}