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

化工原材料网站建设优秀网页设计公司

化工原材料网站建设,优秀网页设计公司,在线免费看影视网站,深圳网站制作问java中iterator在本文中#xff0c;我将讨论如何使用Apache Common CSV读取CSV#xff08;逗号分隔值#xff09;文件。 从这个案例研究中#xff0c;我们将学习如何在设计模式的上下文中使用Iterator和Decorator来提高不同情况下的可重用性。 但是在开始之前#xff0c;我… java中iterator 在本文中我将讨论如何使用Apache Common CSV读取CSV逗号分隔值文件。 从这个案例研究中我们将学习如何在设计模式的上下文中使用Iterator和Decorator来提高不同情况下的可重用性。 但是在开始之前我想我必须先回答两个问题。 如果有太多关于如何读取CSV文件的DIY帖子我为什么需要第三方库 的确当您使用Google“ java csv解析器”时您将获得一些相关的帖子。 但是即使您是初学者也不会对这些肤浅的方法感到满意。 当然使用BufferedReader和String 。 split将成功解析一个典型的CSV文件但是您将无法从中学到任何东西除非使它变得多余。 另一方面就像我在下面显示的那样使用和研究Apache Common CSV将教您Design Pattern中的几个主题例如迭代器和装饰器。 为什么选择Apache Common CSV而不是其他 据我所知Sourceforge或Google代码上还有其他几个库。 但是如果您仔细研究他们的代码细节请原谅我的批评但它们都不是灵活和可管理的有些过于简单无法满足用户的各种要求有些则过于简单。 其他人则过于复杂且难以使用。 此外我遇到的大多数人都没有商业友好型许可证。 您知道有时确实会使用户感到恐惧。 Apache Common CSV仍在沙箱中这意味着当前没有官方下载和稳定版本。 但是 夜间构建可能可用。 使用迭代器隐藏基础表示 让我从一个示例CSV文件开始其中每个记录位于单独的行中并由换行符分隔。 第一行是标题其中包含与文件中的字段相对应的两个名称COL1和COL2 。 文件的其余部分包含三个记录各字段之间用逗号分隔。 COL1,COL2 a,b c,d e,f 使用Apache Common CSV读取此文件的代码是 public void test() throws FileNotFoundException, IOException {CSVParser parser new CSVParser(new FileReader(test.csv), CSVFormat.DEFAULT.withHeader());for (CSVRecord record : parser) {System.out.printf(%s\t%s\n, record.get(COL1), record.get(COL2));}parser.close(); } CSVParser用于根据指定的格式解析CSV文件。 在这里我将使用默认的CSVFormat以及不带参数的withwitherer设置。 这样解析器就可以将CSV文件的第一行作为标头并使record.get(COL1)有效。 CSVParser提供了一种读取记录的迭代方式。 在这里我们遇到了第一个设计模式Iterator 。 它提供了一种顺序访问CSV文件记录而不暴露其底层表示的方法例如如何跳过注释行以及如何将列名映射到字段值。 对于每个记录我们使用CSVRecord.getString name来按字段名称检索字段值。 CSVRecord提供了多种访问字段值的方式按名称或按索引。 如果您不确定该字段具有值或为空 CSVRecord.isSet(String name)可以在之前调用CSVRecord.isSet(String name) 。 如果只想检查解析器是否定义了名称则调用CSVRecord.isMapped(String name) 。 使用装饰器允许不同的行为 CSVFormat.DEFAULT或CSVFormat.RFC4180遵循RFC4180格式。 因此用双引号引起来的字段也可以处理例如 COL1,COL2 a,b c,d e,f 在RFC4180中 CSV文件中的字段应以逗号分隔。 但是通常该库可以处理任意分隔符例如TAB或空格。 为了使代码可重复使用该库提供了一种创建自己的CSVFormat的方法 CSVFormat format CSVFormat.newFormat(,).withQuoteChar().withHeader(); 上面的格式与CSVFormat.DEFAULT相同。 在这里我们遇到了另一个设计模式Decorator 它允许将行为静态或动态地添加到单个对象中而不会影响同一类中其他对象的行为。 在CSVFormat的情况下每个withXXX方法都返回一个新的CSVFormat 它与调用方相同但修改了一个属性。 这里的问题可能是为什么不返回自我参照呢 我认为这是因为后面的方法将使以下代码失败 CSVFormat format CSVFormat.newFormat(,); CSVFormat format1 format.withQuoteChar(); CSVFormat format2 format.withHeader(); 如果我们仅返回this format1将等于format2 这绝对是我们现在所期望的。 CSVFormat提供了非常灵活的方式来指定CSV格式。 可以在其javadoc中找到详细信息该文档有据可查。 我们可以设置定界符注释开始标记引号字符等。因此对于以下CSV文件其中用TAB分隔字段并以#开头注释 COL1 COL2 # comments a b c d e f 我们可以创建一个格式 CSVFormat format CSVFormat.newFormat(\t).withCommentStart(#).withIgnoreEmptyLines(true).withNullString().withHeader(); 总之开始使用Apache Common CSV来统一一个通用和简单的界面以便在ASL许可下读写CSV文件。 它仍然在沙箱中但是可以灵活地满足不同的需求。 最后我想强调的是阅读复杂的代码确实有助于提高编程技能。 因此我强烈建议您阅读此项目源代码它非常简单但功能强大。 参考 如何用Java读取CSV文件-我们的JCG合作伙伴 Peng Yifan在PGuru博客上进行的Iterator和Decorator案例研究 。 翻译自: https://www.javacodegeeks.com/2013/10/how-to-read-csv-files-in-java-a-case-study-of-iterator-and-decorator.htmljava中iterator
http://www.zqtcl.cn/news/477816/

相关文章:

  • 海伦网站建设做网站建设的联系电话
  • 免费做字体的网站枣强网站建设代理
  • 建设网站素材海南百度推广公司电话
  • 温州企业网站建设费用培训行业门户网站建设方案
  • 口碑好的常州网站优化深圳市光明区实验学校
  • 网站怎么做微博认证网页设计代码html作品展示
  • 在线网站建设活动初创企业的建站流程
  • 汨罗哪里有网站开发的公司电话百度首页关键词推广
  • 天津百度整站优化服务政务网站模版
  • 推荐家居企业网站建设用什么工具修改wordpress
  • wix做的网站能扒下来哈尔滨做网站的oeminc
  • 做网站的网络公司门户网站介绍
  • 软件公司网站系统集成建设下拉关键词排名
  • 景翔物流网站建设公司企业网站优化排名
  • 余姚做网站62752762素材网站建设需要多少费用
  • dede网站后台导入文档许昌网站开发哪家好
  • 网站建设宣传psdwordpress 链接关系
  • 宁波网站建设免费咨询深圳做棋牌网站建设找哪家公司好
  • 安阳门户网站html5网页代码
  • 企业建站系统下载广州有几个区几个县级市
  • 时装网站建设的背景广州建设专业网站
  • 来年做那些网站能致富网站建设优化文档
  • 好看的商城网站企业所得税分录
  • 网站建设你懂的网站提高内容的丰富度创意
  • 菏泽做网站设计做一个简单的网站需要多少钱
  • html企业网站怎么做免费crm平台
  • 婚庆公司网站制作如何自己制作首页网站
  • ic外贸网站建设龙岩app制作
  • 长沙企业建网站绵阳市三台县城乡建设局网站
  • 常宁市城市建设规划管理局网站织梦网做网站步骤