统计top500的过程总结(perl,shell,java)【3-java】
三、java相关? ? ?这里shell程序调用java程序的原因是:perl脚本生成的excel文件,其中的词条URL无法解码为人可以识别的汉字(与linux系统编码相关的,不能改系统编码,所以要用java程序处理一下perl生成的excel)。例如将http://www.hudong.com/wiki/%E5%8D%95%E6%9B%B2%E5%BE%AA%E7%8E%AF%E7%97%87解码为http:www.hudong.com/wiki/单曲循环症 保存到新的excel中。 ? ? 关于java读写excel的基本操作,可参考jxl导出Excel最全面的解释。 ? ? java读写excel文件有两种方式:一种是org.apache.poi方法,一种是jxl方法(要导入一个jar包:jxl.jar)。开始我用的poi的方式,但是该方法处理原始excel文件总报错: java.lang.RuntimeException: Unexpected record type (org.apache.poi.hssf.record.HyperlinkRecord) ? ?解决该问题的方法是打开excel文件,随便点两下关闭的时候选择保存,问题就解决了。但是服务器上的excel没人让你每次去点两下,所以改选用jxl方式来处理perl生成的excel文件。 1、utf8解码为可识别的汉字的方法(java):
String temp = http://www.hudong.com/wiki/%E5%8D%95%E6%9B%B2%E5%BE%AA%E7%8E%AF%E7%97%87 temp = URLDecoder.decode(temp,"utf-8"); 编码的方法为URLEncoder.encode(); 2、java读写excel文件:(已上传资源,可下载,在我的资源里面) ? ?DecodeExcelJXL.java ? ?通过args[]直接获得shell脚本传过来的参数。
public static void main(String[] args) throws BiffException,IOException,RowsExceededException,WriteException{ // 根据是否有参数,取得待处理excel表格 if (args != null && args.length == 1) { filePath=args[0]; } rewriteWithNew(filePath); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |