ITPub博客

首页 > 数据库 > Oracle > 博洋教育JAVA培训:java 引入自定义字体后出现的问题

博洋教育JAVA培训:java 引入自定义字体后出现的问题

Oracle 作者:三河哈哈哈哈 时间:2014-03-12 14:23:50 0 删除 编辑

今天在博洋教育学习,老师出了一个需求,要用美术字体在图片上写字,用自定义的文字有两个方法:
  Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, InputStream input);
  Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, new File(pathString));
  我一开始用的是第一种方法:
  InputStream input = FontLoader.class.getResourceAsStream(classPathTTF);
  Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, input);
  input.close();
  然后就出现了吃硬盘的问题。
  它会在你的容器的临时文件哪里写很多的临时文件
  你用一次他就读一次,拷贝一份 *.tmp文件出来
  对于tmp文件的描述google上有很多资料,但是也没有点到要点。
  问题参考资料:
  sun关于tmp文件的描述
  有各种的说法:有人说是bug,有些人说升级到有些版本不会有问题,有些人说是操作系统的缘故等。
  还有人的解决方案是定时跑任务,删除tmp文件。这个方式非常不妥当。
  其实问题很简单,只要替换成第2个方法就可以了。
  String pathString = FontLoader.class.getResource("/font/xxx.ttf").getFile();
  Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, new File(pathString));
  这样无论多少次饮用都不会有tmp文件产生
  总结一下
  方法1、消耗IO,吃硬盘,速度慢,生成很多tmp的文件,大硬盘没感觉,吃光了你就叫吧。
  方法2、低IO,速度快,不会生成tmp文件,没有input流,不必关系是否关系。

博洋教育(http://www.softfz.com/)教师简介:吴慧和,ERP系统设计专家,10年教学经验。
    精通VS.net 企业 级开发模式,精通ADO.net,VB.net, Asp.net,C#, VB等.net框架及安装部署。
    精通WEB界面设计和规划,精通javascript, css, html,熟悉photoshop熟悉使用各中网页开发工具。
    精通ASP编程设计和网站的策划。
    熟悉Delphi环境下的C/S模式的开发。
    掌握SQL Server数据库管理。熟悉Oracle数据库,熟悉掌握数据库设计和实现;熟练掌握T-SQL 编程。

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21268070/viewspace-1115430/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-01