当前位置: 代码迷 >> J2SE >> java如何把本map片以最快的速度读入inputstream里面
  详细解决方案

java如何把本map片以最快的速度读入inputstream里面

热度:8183   发布时间:2013-02-25 00:00:00.0
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
  相关解决方案