java解析FSN文件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
package action; import java.util.ArrayList; import tools.FsnTools; import bean.FsnBody; import bean.FsnModel; public class FsnReaderAction { public final static int intstep =2; //Uint16 字节长度 public final static int stringstep =4; //Uint32 字节长度 public final static int fsnHeadLengh =32; //fsn 文件头字节长度 public final static int fsnPerBodyNoImg =100; //fsn 文件体每条记录,不包 括图像信息的字节长度 public final static int fsnPerBodyImg =1644; //fsn 文件体每条记录,包括 图像信息的字节长度 public int filePos =0; //fsn 文件字节流当前指针位置 public FsnModel fm ; // 本实例解析的 FsnMedel 对象 public String fsnFilePath ; //FSN 文件的存储完整路径,包括文件名 public FsnReaderAction(String filePath){ this . fsnFilePath =filePath; } public FsnModel readFsnFile() throws Exception { // FsnModel ret=null; try { this . fm =new FsnModel( this . fsnFilePath ); //hzyimport 把文件转成字节流数组 byte [] fsnbytes =FsnTools. toByteArray ( this . fsnFilePath ); this . fm .setSize(fsnbytes. length ); System. out .println( File Lengh: +fsnbytes. length ); // 读取头文件 setHead(fsnbytes); long counter = this . fm .getCounter(); // 冠字号信息条数 // System.out.println(this.fm.getHeadString()[2]=+this.fm.getHeadStr ing()[2]); int size = this . fm .getHeadString()[2] != 0x2D ? fsnPerBodyImg : fsnPerBodyNoImg ; // System.out.println(this.fm.getHeadString()[2] =+this.fm.getHeadString()[2] ); // System.out.println(counter =+counter); // System.out.println(size=+size); // System.out.println(counter =* size+counter * size); // System.out.println(fsnHeadLengh=+fsnHeadLengh); // 如果fsn 文件的长度合一致 if (counter * size + fsnHeadLengh == fsnbytes. length ) { ArrayListFsnBody list = new ArrayListFsnBody(); long ValutaSum=0; for ( int i = 0; i counter; i++) { FsnBody body = new FsnBody(); boolean noException= false ; // 处理过程中没有异常 // 每条fsn 信息均从 i * size + 32( 头的长度 ) 处起始 int thisPosSart=i * size + fsnHeadLengh ; // 此处处理非常重要, 在读取图片文件前一定要做处理因为图片字节 流长度固定, 644位,getSnoExpImg 方法只读到图片信息中有数据部分对应的字节流,后 面的都是空值,将不再读取 // 某条图片数据读完以后, filePos 不一定会移至这个图片数据对应 的结尾位置,要在读取下一条数据时,强制将 filePos 指向下一条图片信息对应字节流起 始位置 if ( filePos t

文档评论(0)

liuxiaoyu92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档