当前位置: 首页 > news >正文

微网站开发价格中小企业网络营销

微网站开发价格,中小企业网络营销,网站简介 title,建站赚钱灰色http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛#xff0c;关于Java文件监控一文#xff0c;帖子地址在#xff1a;http://www.iteye.com/topic/1127281 评论的朋友很多#xff0c;下载代码的朋友很不少#xff0c;感谢在论坛上看我帖子的朋友#xff0c;… http://www.iteye.com/topic/1127319   前天第一次发表博客到论坛关于Java文件监控一文帖子地址在http://www.iteye.com/topic/1127281 评论的朋友很多下载代码的朋友很不少感谢在论坛上看我帖子的朋友还有回复评论的朋友给我提供建议的朋友。   从这些建议中虽然语言简短但是却有的是一语中的这里说一下一下关于帖子的代码中HashFile中的MD5文件校验算法 该算法是使用Java自带的MessageDigest类测试结果获取一个2G文件的MD5码耗时 971秒这效率太给力了可以用坑爹来形容所以用MD5文件校验码来判断文件是否被修改对于小文件来说可能还合适要是对大文件来说好吧撞墙死了算了   HashFile中的代码是这样子的 import java.io.FileInputStream;import java.io.InputStream;import java.security.MessageDigest; public class HashFile {        /**      * param args      */      public static char[] hexChar { 0, 1, 2, 3, 4, 5, 6, 7,              8, 9, a, b, c, d, e, f };       public static String getHash(String fileName, String hashType)              throws Exception {          InputStream fis;          fis new FileInputStream(fileName);          byte[] buffer new byte[1024];          MessageDigest md5 MessageDigest.getInstance(hashType);          int numRead 0;          while ((numRead fis.read(buffer)) 0) {              md5.update(buffer, 0, numRead);          }          fis.close();          return toHexString(md5.digest());      }        public static String toHexString(byte[] b) {          StringBuilder sb new StringBuilder(b.length * 2);          for (int i 0; i b.length; i) {              sb.append(hexChar[(b[i] 0xf0) 4]);              sb.append(hexChar[b[i] 0x0f]);          }          return sb.toString();      }  }  测试结果 真给力啊超过2G效率变成这样 好吧自带的MD5算法上当了对于检查文件是否更新这个问题来说现在我使用的解决办法是File 类的lastModified方法代码这样 private String getHash(String fp){  File file new File(fp);  return String.valueOf(file.lastModified()); }  通过比较文件的最后修改时间来判断文件是否更新对大文件也轻松拿下 测试结果是这样  当然针对不同问题肯定是有不同的解决办法   分析原来HashFile代码获取MD5校验码的瓶颈是出现在 Java代码   public static String getHash(String fileName, String hashType)                 throws Exception {             InputStream fis;             fis  new FileInputStream(fileName);             byte[] buffer  new byte[1024];             MessageDigest md5  MessageDigest.getInstance(hashType);             int numRead  0;             while ((numRead  fis.read(buffer))  0) {  //瓶颈               md5.update(buffer, 0, numRead);             }             fis.close();             return toHexString(md5.digest());         }     public static String getHash(String fileName, String hashType) throws Exception { InputStream fis; fis new FileInputStream(fileName); byte[] buffer new byte[1024]; MessageDigest md5 MessageDigest.getInstance(hashType); int numRead 0; while ((numRead fis.read(buffer)) 0) { //瓶颈md5.update(buffer, 0, numRead); } fis.close(); return toHexString(md5.digest()); }  在上面代码中while循环N次2G的文件循环1024 * 1024  * 2 次不给力   chimer回复 来个nio的简单版看你们老是怀疑java慢 C MD5工具验证结果 File: K:\Games\World of Warcraft\Data\common.MPQ Size: 2226587191 bytes Modified: 2008年11月19日 星期三, 12:57:24 MD5: CD9F9C5523F3BA3866B81CCC74ED6476 java运行结果毫秒 耗时12672,cd9f9c5523f3ba3866b81ccc74ed6476 核心代码 String hashType MD5;  FileInputStream fStream null;  try {   MessageDigest md5 MessageDigest.getInstance(hashType);   fStream new FileInputStream(     //K:\\Games\\World of Warcraft\\Scan.dll);     //K:\\Games\\World of Warcraft\\Data\\patch-3.MPQ);     K:\\Games\\World of Warcraft\\Data\\common.MPQ);   FileChannel fChannel fStream.getChannel();   ByteBuffer buffer ByteBuffer.allocate(8*1024);   long s System.currentTimeMillis();   for ( int count fChannel.read( buffer ); count !-1 ; count fChannel.read( buffer )    ) {    buffer.flip();    md5.update( buffer );    if( !buffer.hasRemaining() ){     //System.out.println(count:count);     buffer.clear();    }   }   s System.currentTimeMillis() - s;   System.out.println( 耗时s,getString( md5.digest() ) );     } catch (NoSuchAlgorithmException e) {   e.printStackTrace();  } catch (FileNotFoundException e) {   e.printStackTrace();  } catch (IOException e) {   e.printStackTrace();  }finally{   try {    if( fStream!null )     fStream.close();   } catch (IOException e) {    e.printStackTrace();   }  } 转载于:https://www.cnblogs.com/yangyudexiaobai/p/4452776.html
http://www.sadfv.cn/news/25548/

相关文章:

  • 做电影分享网站违法吗域名注册商网站
  • 抽奖网站怎么做网站建站论坛
  • 网站开发需求分析实例网页和网站区别
  • 西安网站建设招骋商丘做网站的电话
  • 网站建设哪个空间比较好珠海集团网站建设报价
  • 网站实名认证 备案医疗网站如何做优化
  • 织梦网站栏目是做什么用的有哪些网站是免费学做网页的
  • 58网站建设 网站制作阿里做外贸的网站
  • 新手做站必看 手把手教你做网站专门做视频的网站吗
  • 域名备案和网站备案区别余姚物流做网站
  • iis网站右键没有属性免费个人网站源码下载
  • 网站seo设计方案案例无锡百度网站推广渠道
  • 网站模块图网站 宗旨
  • 山东专业网站解决方案制作建设厅五大员证书查询网站
  • 奢侈品网站 方案西安定制网站建设
  • 安徽建设通网站门户网站建站要求
  • 北京市门头沟有没有做网站的网店美工招聘信息
  • 怎么做网站关键词视频设计logo网站免费下载
  • 网站平台建设缴纳什么税合肥网站搜索优化
  • 公众号 商城 网站开发网站转入备案
  • 网站开发工资多少安徽网站设计
  • 江苏系统建站怎么用惠济免费网站建设
  • 国外对旅游网站建设的现状网站备案初审过了
  • 公司网站的后台云南省网站备案要求
  • 网站建设用户调查wordpress uploads 权限
  • 做外贸做什么网站好wordpress助手爱奇艺
  • 怎样创建网站app增长超人网站建设价格
  • 网站链接文字wordpress官网主题
  • 建设手机网站平台牛商网上市了吗
  • 建信建设投资有限公司网站做受免费网站