`

Groovy之旅系列之八(Groovy List&File&XML)

 
阅读更多
我们先来看看Groovy都带来哪些新特性.


你只需很少的代码就可以读取一个文件:
number = 0

new File("src/aa.groovy").eachLine({
    line 
->
    number 
++
    println(
"$number:$line")
}
)

打印一个集合:文字集合和简单的属性访问.

java.util.List 和 java.util.Map 可能是应用得最广泛的接口在Java里.但
是只有少量的语言支持.Groovy加入了声明list和map就像你声明一个string或number一样
简单,并且在集合类里加入了许多方法.

下面一个例子程序,打印出各个类所在的包.

 

def classes = [String,List,File]
for(clazz in classes)
{
    println clazz.
'package'.name
}



操作XML:对于Java来说操作XML是一件很复杂的事情.
现在Groovy已经大简化了这种操作.假设有customer.xml:
<?xml version="1.0" ?>
<customers>
  
<corporate>
    
<customer name="Bill Gates"        company="Microsoft" />    
    
<customer name="Steve Jobs"        company="Apple" />
    
<customer name="Jonathan Schwartz" company="Sun" />
  
</corporate>
  
<consumer>
    
<customer name="John Doe" />
    
<customer name="Jane Doe" />
  
</consumer>
</customers>
你只需如下代码就可以访问此XML:
def customers = new XmlSlurper().parse(new File("src/customer.xml"))
for(customer in customers.corporate.customer)
{
    println 
"${customer.@name} works for ${customer.@company}";
}
分享到:
评论

相关推荐

    dom4j解析XML所需要的包

    在Java环境中,解析XML文档通常需要引入特定的库,DOM4J就是其中之一。下面我们将深入探讨DOM4J解析XML的基本概念、使用方法以及它与其他XML解析器的比较。 XML(eXtensible Markup Language)是一种标记语言,广泛...

    基于Java的实例源码-用jdom解析xml.zip

    File inputFile = new File("path_to_your_xml_file.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc...

    dom4j使用与jar包

    File file = new File("path_to_your_xml_file.xml"); SAXReader reader = new SAXReader(); Document document = reader.read(file); // 遍历XML元素 Element rootElement = document.getRootElement(); List...

    Android 基于libaums实现读写U盘文件

    ```groovy dependencies { implementation 'com.github.se_bastian:libaums:3.2.1' } ``` 集成完成后,我们就可以开始编写代码了。libaums库提供了一个`UsbMassStorageDevice`类,它代表一个USB存储设备。以下是...

    Dom4j封装和解析

    document = DocumentHelper.parseText(new File("path_to_your_xml_file.xml")); ``` **3. 遍历和访问XML元素** 解析XML后,可以通过XPath或遍历节点来访问元素。例如,获取`&lt;root&gt;`元素的第一个子元素: ```java ...

    读取sd卡图片进行轮播

    File[] files = imageFolder.listFiles(); if (files != null) { for (File file : files) { if (file.isFile() && file.getName().endsWith(".jpg")) { // 只读取.jpg格式的图片 imagePaths.add(file....

    java支持ftp下载,并简单实现过滤

    FTPFile[] files = ftp.listFiles(); for (FTPFile file : files) { if (Arrays.stream(filters).anyMatch(file.getName()::endsWith)) { // 下载符合条件的文件 } } ``` 5. **配置文件使用**:`config....

    android打包zip

    for (File child : file.listFiles()) { addFilesToZip(zos, child, baseDir); } } else { String entryName = file.getAbsolutePath().substring(baseDir.length() + 1); zos.putNextEntry(new ZipEntry...

    dom4j使用教程

    Document document = reader.read(new File("path_to_xml_file.xml")); ``` - **DOM解析**: ```java DocumentFactory factory = DocumentFactory.getInstance(); Document document = factory.createDocument...

    安卓实现一个音乐播放器

    File[] songFiles = path.listFiles(new MyFilter(".mp3")); // 返回以.mp3结尾的文件 for (File file : songFiles) { list.add(file.getAbsolutePath()); // 获取文件的绝对路径 } ``` #### 四、自定义文件...

    Android上传文件到FTP

    在Android平台上,将文件上传至FTP(File Transfer Protocol)服务器是一项常见的任务,尤其在处理用户数据备份、资源共享或媒体分享时。本知识点主要探讨如何在Android应用中实现在SD卡中选择图片并上传到FTP服务器...

    ZipOutputStream 压缩文件以及乱码问题解决方案

    File[] children = file.listFiles(); if (children != null && children.length &gt; 0) { for (File child : children) { addFileToZip(child, zos, parent + "/" + file.getName()); } } } else { ...

    android程序中文件弹框demo

    在Android开发中,文件选择器(File Picker)是常见的功能之一,它允许用户在应用程序内浏览和选择文件或目录。本教程将详细讲解如何在Android程序中实现一个文件弹框Demo,使用的开发环境是Android Studio。 首先...

    android读取Excel文件(Android studio开发环境)

    ```groovy implementation 'org.apache.poi:poi-ooxml-schemas:4.1.2' implementation 'org.apache.poi:poi-ooxml-lite:4.1.2' ``` 2. **读取Excel文件**:在Android应用中,我们通常会在一个后台线程(如...

    jasperreport的操作步骤

    - groovy-all-1.7.5.jar:Groovy脚本引擎。 - commons-beanutils-1.8.3.jar:提供对Java Bean的操作支持。 - commons-digester-1.7.jar:用于解析配置文件。 - commons-logging-1.0.4.jar:日志记录框架。 - iText-...

    JDK1.6 API帮助文档

    7. **XPath API**: 支持XML文档的查询,通过`javax.xml.xpath`包可以对XML数据进行高效处理。 8. **JavaFX**: 虽然在JDK 1.6中只是预览版,但它是Java的下一代GUI库,提供了丰富的媒体支持和动画效果。 **API使用...

    android 支持多种USB转串口驱动

    这通常可以通过"File" -&gt; "New" -&gt; "Import Module"菜单完成。 2. 在你的项目的build.gradle文件中,添加对新导入模块的依赖。在app模块的build.gradle文件中,添加如下代码: ```groovy dependencies { ...

    android中treeview的实例运用,可运行demo

    ```groovy dependencies { implementation 'com.github.bmelnychuk:atv:1.2.+ } ``` 完成依赖导入后,我们可以在布局XML文件中添加TreeView组件。以下是一个简单的例子: ```xml android:id="@+id/tree_view" ...

    android工程JaCoCo代码覆盖率Demo

    xml.enabled = true html.enabled = true } classDirectories = fileTree(dir: 'build/intermediates/javac/debug/classes', includes: ['**/*.class']) sourceDirectories = files(['src/main/java']) ...

    viroReact配置文件参考

    ViroReact是建立在React Native之上的扩展库,提供了AR和VR功能,支持Google Daydream、Google Cardboard以及ARKit(iOS)平台。 二、集成前准备 在集成ViroReact之前,确保你已经安装了以下组件: 1. Node.js:...

Global site tag (gtag.js) - Google Analytics