最近的一个任务   .trs文件其实跟.txt差不多    具体有什么区别咱分的不是很清楚了   只知道读取是一样的    先看.trs文件格式    然后看代码吧      我读取的.trs文件有3.5M  读取所耗费的时间有2分多钟    不知道是不是自己读取的效率有问题     希望有高手能够给个意见     代码用到了正则     有用到的朋友   格式差不多的话    只需要改正则了

.trs文件格式内容:

<REC>
<报名>=四川日报
<期号>=
<引题>=
<标题>=省九届人大常委会第二十次会议闭会
<副题>=谢世杰主持并讲话通过《四川省森林公园管理条例》等法规,决定省九届人大四次会议2001年2月6日召开
<作者>=
<日期>=2000.12.01
<版次>=1
<版名>=
<版条>=是
<栏目>=
<分类>=四川人大;我国自然资源
<分类号>=B3;Oj2
<关键字>=
<信息编辑>=
<坐标>=2179,57,4122,551
<下转>=200012010409
<正文>=  <IMG=200012> <IMG=2001211>  本报讯  省九届人大常委会第二十次会议11月30日在成都举行第三次全体会议
,省人大常委会主任谢世杰主持会议。会议在圆满完成各项议程后闭会。
    会议表决通过了《四川省森林公园管理条例》、《四川省<中华人民共和国节约
能源法>实施办法》、《四川省华侨投资权益保护条例》和《四川省人民代表大会常
务委员会关于召开四川省第九届人民代表大会第四次会议的决定》、《四川省第九
届人民代表大会常务委员会代表资格审查委员会关于代表资格的审查报告》,通过
了省人大7个专门委员会关于省九届人大三次会议主席团交付审议的代表提出的议案
审议结果的报告。会议批准了《成都市消防条例》、《成都市城市供水管理条例》
和《成都市性病艾滋病防治管理条例》。
    会议通过了人事任免事项。
    谢世杰在会议结束时就认真贯彻落实十五届五中全会精神,做好人大工作讲了
话。他强调,要深刻领会党的十五届五中全会精神,牢牢把握全省工作大局。谢世
杰指出,贯彻落实五中全会精神,要认真扎实地做好人大的各项工作。首先,做好
今年年末5项工作,为明年开局打好基础。一是立法工作要在增强地方特色,提高法
规质量上下功夫。(紧转第四版)(紧接第一版)要建立立、改、废三者并举的良性运
行机制,抓紧做好地方立法程序性法规的审议颁布工作。立法工作中要尽力防止部
门利益法律化。二是监督工作要加大力度,增强实效。他强调,要督促各级政府在
实施西部大开发战略、经济结构调整、国有企业改革、科技创新、发展民营经济、
减轻农民负担、落实社会保障等方面加大工作力度。在监督方式上,要把对事和对
人的监督有机结合起来。三是在法制宣传教育方面,要以贯彻依法治国方略、推进
依法治省,贯彻落实依法治省经验交流会精神为重点,加大执法和法制宣传教育力
度。四是代表工作要落实“百千万”活动,改进办法,提高工作质量。五是搞好人
大的自身建设,重点是增强公仆意识和责任意识,提高法律素质,为全省人民树立
表率。
    省人大常委会副主任孟俊修、牟绪珩、孙自强、刘子寿、李永寿、张宗源、刘
永顺、张国辉、卢铁城,秘书长杨启泉和委员共74人出席会议。
    副省长王恒丰,省高级人民法院院长敬瑞祥,省人民检察院检察长韩忠信等列
席会议。
    省政协副主席郝振贤应邀列席会议。
<图片>=

代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Text.RegularExpressions; /// <summary> ///TransferTRSCreateList 的摘要说明 /// </summary> namespace TrsTransfer { public class TransferTRSCreateList { public TransferTRSCreateList() { // //TODO: 在此处添加构造函数逻辑 // } public List<TrsPageInfo> TRSCreateList(string pathName)//传入trs路径 { using (FileStream fs = new FileStream(pathName, FileMode.Open, FileAccess.Read)) { StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("UTF-8"));//转换为utf-8中文格式,不然会出现乱码 string line = sr.ReadToEnd();//读出出来后加入内存 string[] content = line.Split(new string[] { "<REC>" }, StringSplitOptions.None);//截取所有<REC> List<TrsPageInfo> trsPageInfoList = new List<TrsPageInfo>();//定义一个泛型对象 for (int i = 0; i < content.Length; i++)//循环获取没个<REC>里面内容 { if (content[i].ToString() != "")//判断是否为空 { TrsPageInfo transferInfo = new TrsPageInfo(); transferInfo = trsPage(content[i]);//用正则匹配将匹配后的内容添加到TrsPageInfo对象 trsPageInfoList.Add(transferInfo);//将对象添加到泛型中 } } sr.Close(); return trsPageInfoList;//返回一个包含所有TrsPageInfo对象的泛型 } } public string GetTitle(string text, string name)//匹配每一个<REC>对象,参数一是整个<REC>对象,参数二是需要匹配的名称 { Regex rg = null; if (name == "正文")//匹配正文 { rg = new Regex(@"/<正文/>=([^*]+)<图片", RegexOptions.IgnoreCase | RegexOptions.Compiled); Match m = rg.Match(text); string context = Regex.Replace(m.Groups[1].Value, @" </?IMG[^>]*>", "");//如果正文里面出现<IMG>将其用正则移出掉 return context; } else if (name == "正文图片")//匹配正文图片 { rg = new Regex(@"/<IMG=([^*>/r/n<]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);//正则匹配<IMG>正文图片 MatchCollection mc = rg.Matches(text); string strMatch = ""; foreach (Match match in mc)//循环获取多张正文图片 { GroupCollection groups = match.Groups; strMatch += groups[1].Value + ","; } return strMatch; } else { rg = new Regex(@"/<" + name + "//>=([^*/r/n<]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);//匹配所需要的名称 } Match mt = rg.Match(text); return mt.Groups[1].Value; } public TrsPageInfo trsPage(string content)//获得匹配后的内容 { List<ImageBean> listImageBean = new List<ImageBean>(); TrsPageInfo transferInfo = new TrsPageInfo(); transferInfo.PaperName = GetTitle(content, "报名"); transferInfo.PublishId = GetTitle(content, "期号"); transferInfo.IntroTitle = GetTitle(content, "引题"); transferInfo.Title = GetTitle(content, "标题"); transferInfo.SubTitle = GetTitle(content, "副题"); transferInfo.Author = GetTitle(content, "作者"); transferInfo.Date = GetTitle(content, "日期"); transferInfo.PageIndex = GetTitle(content, "版次"); transferInfo.PageName = GetTitle(content, "版名"); transferInfo.Programa = GetTitle(content, "栏目"); transferInfo.Types = GetTitle(content, "分类"); transferInfo.PointList = GetTitle(content, "坐标"); transferInfo.Content = GetTitle(content, "正文"); string[] imagebean = GetTitle(content, "正文图片").Split(','); for (int i = 0; i < imagebean.Length - 1; i++)//循环获得多个正文图片 { ImageBean imageBean = new ImageBean(); imageBean.PathName = imagebean[i]; listImageBean.Add(imageBean);//将多个正文图片添加到泛型 } transferInfo.imageBean = listImageBean; transferInfo.ImageUrl = GetTitle(content, "图片"); return transferInfo;//返回TrsPageInfo对象 } } }

用IO流读取trs文件相关推荐

  1. java IO流读取保存图片文件

    java  IO流读取保存图片文件 package io; import java.io.BufferedInputStream; import java.io.BufferedOutputStrea ...

  2. java io流读取txt文件_Java使用IO流读取TXT文件

    通过BufferedReader读取TXT文件 window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputS ...

  3. IO流读取文件用户信息根据年龄排序后,写到文件

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java ...

  4. java字节流读取文件_字节流读取文件 java的几种IO流读取文件方式

    java字节流怎么读取数据 字节流读取数据例子如下: import java.io.File;import java.io.FileInputStream;import java.io.FileNot ...

  5. java 输入流可以合并吗_Java 使用IO流实现大文件的分割与合并实例详解

    java 使用IO流实现大文件的分割与合并 文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时 ...

  6. 1-19 HashMap、IO流递归遍历文件实战

    文章目录 1.本篇文章目的 2.需求场景 1)准备员工信息文件 2)需要完成的内容 3.开发工作 1)开发思路分析 2)开发 3)结果 公众号有技能演示视频,大家可搜索添加公众号 taishangco ...

  7. 普通IO流字符输入输出流文件拷贝

    import java.io.*;/*** 普通IO流字符输入输出流文件拷贝** @author silence*/ public class Silence {public static void ...

  8. Stream流、FiLe和IO流、IO流(字节流-拷贝文件_和_字符流-读取文本中的数据写入文本文件中)9-10-11

    package com.streamdemo; import java.util.ArrayList; import java.util.List; /*** 体验Stream流** 创建一个集合,存 ...

  9. java利用io流读取文件发生了乱码以及java解析vcf文件

    如果文件中含有中文字符,那么这时候直接进行读取,即new FileInputStream(要读取的文件),就会出现了乱码,所以这时候,我们需要设置对应的格式进行读取,所以还需要传递对应的编码,所以将代 ...

  10. java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势

    image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...

最新文章

  1. 中国电子学会图形化四级编程题:成语接龙
  2. html左右飘窗高度不一致,飘窗的最佳尺寸,你可知道?不懂的留着吧!
  3. 2019年春运贵州道路客运预计达6700万人次
  4. 校园PHP表白墙程序源码
  5. git merge 与 git rebase的区别
  6. 原神光环助手下的算什么服务器,原神光环助手app
  7. C++自学24:唯一智能指针(make_unique/unique_ptr/reset/release/get/13.1)
  8. Linux 权限设置
  9. PyQt教程 - pythonQt的安装和配置及版本间差异
  10. 宏转录组方法_中山大学医学院施莽教授学术讲座:宏转录组方法在病原生物学领域的应用...
  11. access数据库代做_矿井三维模型(代做矿山模型)
  12. 04L型匹配和T型匹配的核心算法
  13. YYC优雅草松鼠聚合直播系统·前端视频模块显示空白-解决办法-视频上传处理方法
  14. 在win10中查看plt文件
  15. Java基于JSP的报刊订阅管理系统
  16. sql server时间格式
  17. arduino声音传感器与二极管_如何将声音传感器与Arduino连接 并实现继电器控制项目...
  18. 导出excel,后台执行,前台无反应
  19. datagrip 快捷键
  20. 精益画布和商业模式画布

热门文章

  1. Wed Sep 16 2020 00:00:00 GMT+0800 (中国标准时间)时间转换为mysql date类型
  2. Linux安全合规性检查和加固
  3. Python三维绘图--Matplotlib
  4. BZOJ5294 BJOI2018 二进制 线段树
  5. eclipse项目名前出现红色感叹号的原因及解决的方法
  6. 团队开发过程中的一点感想
  7. EXCEL表格-输入身份证号无法正常展示问题详解
  8. 解决电脑上装了两个不同版本的sqlserver 导致索引越界等一系列问题。
  9. java通过qq邮箱发送_java通过qq邮箱发送邮件
  10. worksheet怎么读_worksheet是什么意思_worksheet怎么读_worksheet翻译_用法_发音_词组_同反义词_工作表_学习单-新东方在线英语词典...