日期:2014-05-20  浏览次数:20802 次

java怎么把本地图片以最快的速度读入inputstream里面?
不用输出保存,只读入流中即可,怎么把图片快速读入输入流啊。

------解决方案--------------------
Java code

        BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
        try
        {
            byte[] buffer = new byte[4096];
            int len = -1;
            while((len = in.read(buffer)) != -1)
            {
                //TODO
            }
        }
        finally
        {
            in.close();
            in = null;
        }

------解决方案--------------------
4096只是各种书上的推荐值. 
其实每一次只搬4096(4k)对于现在的机器配置以及JDK1.3以上来说有些小气了。这样会因为while而消耗CPU时间.
如果文件不超过512K, 直接拿文件的length()做buffer的大小
如果超过了,最好用512K的倍数,映像中java的堆是按这个数分配的.
----
早在win2k时代 10M以下文件在MSDOS复制时的默认缓存就已经是32K