`
keepwork
  • 浏览: 332671 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
开发者博客:http://www.developsearch.com

/**
 * 流操作
 * 
 * @author chenxin
 * @version [版本号, 2012-5-21]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class StreamUtil {

	// 从文件读取数据
    public static byte[] getContentFromFile(String filePath) throws IOException
    {
        FileInputStream fin = new FileInputStream(filePath);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        int n = -1;
        byte[] buf = new byte[1024];
        while ((n = fin.read(buf)) != -1)
        {
            os.write(buf, 0, n);
        }
        fin.close();
        return os.toByteArray();
    }

    // 写数据到文件
    public static void writeContentToFile(String filePath, byte[] content) throws IOException
    {
        FileOutputStream fout = new FileOutputStream(filePath, false);

        fout.write(content);

        fout.close();

    }

    // 从输入流读取数据
    public static byte[] getContentFromInputStream(InputStream in) throws IOException
    {
        return getContentFromInputStream(in, Integer.MAX_VALUE);
    }

    // 从输入流读取数据
    public static byte[] getContentFromInputStream(InputStream in, int length) throws IOException
    {
        ByteArrayOutputStream os = new ByteArrayOutputStream();

        byte[] buf = new byte[1024];
        while (os.size() < length)
        {
            int n = in.read(buf);
            if (n > 0)
            {
                os.write(buf, 0, n);
            }
            else if (n < 0)
            {
                break;
            }
        }
        in.close();
        return os.toByteArray();
    }

    // 从输入流读取数据
    public static String getContentStrFromInputStream(InputStream in) throws IOException
    {
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        int iCnt = 0;
        while ((iCnt = in.read(buf)) > 0)
        {
            os.write(buf, 0, iCnt);
        }
        in.close();
        return os.toString("UTF-8");
    }

    public static void main(String[] args)
    {
    }

    /**
     * 将输入流的内容全部输出到输出流
     * 
     * @param is 输入流
     * @param os 输出流
     * @throws IOException
     */
    public static void copy(InputStream is, OutputStream os) throws IOException
    {
        synchronized (is)
        {
            synchronized (os)
            {
                byte[] buffer = new byte[256];
                while (true)
                {
                    int bytesRead = is.read(buffer);
                    if (bytesRead == -1)
                    {
                        break;
                    }
                    os.write(buffer, 0, bytesRead);
                }
            }
        }
    }


}
分享到:
评论

相关推荐

    java utils 工具类

    本篇文章将深入探讨`StreamUtil`这个特定的工具类,它是Java 8引入的流(Stream)操作的一个扩展,帮助开发者更好地处理数据流。 Java 8中的Stream API提供了一种新的数据处理方式,它支持函数式编程风格,可以对...

    jodd java工具类库,包括数据库mvc依赖注入等等

    jodd java工具类库,包括数据库mvc依赖注入等等

    Java常用工具包Jodd.zip

    Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架。简单,却很强大!...获取函数参数名jodd-dboom 数据库访问的轻量级封装,可看作一个简单的ORMjodd-json JSON解析、序列化jodd-vtor 一个基于注解的...

    JODD工具包

    **JODD工具包**,全称为Java Open Development Drawer,是一个全面且强大的Java开发工具集。这个工具包提供了多种功能,旨在简化开发人员的工作流程,提高效率。在JODD中,你将找到一系列模块,如`jodd-joy`、`jodd-...

    读取sd卡图片

    读取sd卡图片并且显示到出来 ... ... byte[] imagebytes = StreamUtil.getBytes(fis); Bitmap bitmap = BitmapFactory.decodeByteArray(imagebytes, 0, imagebytes.length); return bitmap; } }

    给程序员用的基于Java语言的工具集canoe-util-master.zip

    6. StreamUtil:优化了IO流操作,提供文件读写、网络流处理的便捷接口。 7. ThreadUtil:线程管理工具,包括线程的启动、暂停、恢复、结束,以及线程池的创建和管理。 8. ConvertUtil:对象转换工具,可以将基本类型...

    网络通信(2HttpClient

    通常,响应内容可能是一个InputStream,需要通过工具类如`StreamUtil`将其转换为字节数组或字符串。例如: ```java InputStream in = httpResponse.getEntity().getContent(); byte[] buffer = StreamUtil....

    java json ajax util

    1. **StreamUtil.java**:这个类可能包含了对输入/输出流的操作,例如读取或写入文件、网络流等。在处理JSON时,可能有将JSON数据写入文件或者从网络响应中读取JSON的函数。对于AJAX请求,如果涉及到文件上传或下载...

    java filter打印请求返回参数

    - 使用`StreamUtil.readBytes()`方法将请求体中的数据读入一个`byte[]`数组。 - 创建一个新的`ByteArrayInputStream`实例并将其包装为`ServletInputStream`。 - 在`getInputStream()`方法中返回该`Servlet...

    hutool一个Java基础工具类

    流处理是Java中重要的部分,Hutool的StreamUtil提供了丰富的流操作,包括转换、过滤、合并等。例如,可以方便地将集合转换为流: ```java List&lt;String&gt; list = ListUtil.list("a", "b", "c"); Stream&lt;String&gt; ...

    常用工具类

    8. **IO流工具类**:如`StreamUtil`,提供对输入/输出流的操作,如复制、关闭、缓冲等。 9. **数学计算工具类**:如`MathUtil`,提供一些数学运算,如最大值、最小值、随机数生成等。 10. **线程和并发工具类**:如`...

    org.tinygroup.ui.framecommon-2.3.4.zip

    webpieces.zip,datawrapper使得不复制buffer就可以很容易地将它们链接在一起,这样它们看起来就像一个实体,避免不断地复制包含所有web片段(带有api)的dataa项目来创建web服务器(和实际的web服务器)。

    如何实现java8 list按照元素的某个字段去重

    为了基于特定字段去重,我们可以创建一个辅助工具类`StreamUtil`,提供一个`distinctByKey`方法,该方法返回一个谓词(Predicate),用于检查元素的特定字段是否已经出现过: ```java public class StreamUtil { ...

    Hutool Java基础工具系统 v4.0.6

    对于I/O流,StreamUtil提供了诸如合并流、复制流等实用方法,使得处理流变得更加简单。在字符串处理方面,StrUtil提供了丰富的静态方法,如格式化字符串、检查空值、替换等,这些都能极大地提高开发效率。 其次,...

    Hutool JAVA工具集 v4.1.2

    - `StreamUtil`工具类对Java的流API进行了封装,支持对输入流、输出流的操作,包括合并流、关闭流、读写数据等,简化了流的管理。 3. **加密与解密**: - `CryptoUtil`工具类提供了多种加密算法,如MD5、SHA、AES...

    SpringMvc微信支付回调示例代码

    String xml = StreamUtil.inputStream2String(is, "UTF-8"); // 将xml转换为Map并进行逻辑处理 } ``` 3. **XML数据转换** XML数据需要转换为可操作的对象,例如Map。在示例代码中,使用了`inputStream2String`...

    android-util:适用于 Android 的实用程序类

    StreamUtil StringUtil ToastMaster ViewUtil 要求 API 级别 9 (GingerBread) 及以上。 设置 该库作为 AAR 推送到 Maven Central,因此您只需将以下内容添加到build.gradle文件中: dependencies { compile ' ...

Global site tag (gtag.js) - Google Analytics