`
rainy646556896
  • 浏览: 20508 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

groovy读取文件

 
阅读更多

读取csv文件

def text = new File("source.csv").text
assert text instanceof String
println text

 

逐行读取csv文件

 

def file = new File("D:\\tool\\api2direct\\api2direct\\sourceCopy.csv")
assert file.name == 'sourceCopy.csv'
assert file.path == 'D:\\tool\\api2direct\\api2direct\\sourceCopy.csv'
assert file.isAbsolute()
assert file.parent == 'D:\\tool\\api2direct\\api2direct'

file.eachLine{println it}
file.eachLine('GB2312', 3) {str, no ->
   println no
   println str
}

 

对csv文件的每一行内容进行处理

def file = new File("D:\\tool\\api2direct\\api2direct\\sourceCopy.csv")
file.splitEachLine(',') {println it}

def listLine = file.readLines()
listLine.each{
  println it.toUpperCase()
}

listLine.filterLine{str ->
   if(str.contains('RR01S'))
       str
}.writerTo(new PrintWriter(System.out))

 

解析Properties文件

 

/*configure.properties
name=emma
age=26
*/
//读取
def props = new Properties()
new File("configure.properties").withInputStream{stream ->
   props.load(stream)
}

assert props['name'] == 'emma'
assert props['age'] instanceof String
assert props instanceof Map

//通过ConfigSlurper object对象来访问
def config = new ConfigSlurper().pares(props)
assert config.name == 'emma'


 

 更简洁的方式访问,但属性的值若是字符串,需加上引号

/*configure.properties
name="emma"
age=26
*/

//读取
def config = new ConfigSlurper().parse(new File("configure.properties").toURL())

assert config.name == 'emma'
assert config.age instanceof Integer

 

 

 

读取groovy文件

 

/*message.groovy
capacity {
  created="x"
  modified="y"
}
*/
//代码如下
def config = new ConfigSlurper().parse(new File("message.groovy").toURL)
assert config.capacity.created == 'x'
 

 访问目录

def dir = new File("D:\\个人代码\\groovy")
if(dir.isDirectory()) {
    dir.eachFileRecurse {file ->
         println file
    }
}

dir.eachFileMatch(~/.*\.txt/) {file ->
    println file.name
}

 

写入文件

def writeFile(fileName) {
     def file = new File(fileName)
     if(file.exists())
          file.delete()
     def printWriter = file.newPrintWriter()
     printWriter.println('The first line')
     printWriter.write('The second line')
     
     printWriter.flush()
     printWriter.close()
}

writeFile('output.txt')

 更简洁的写法

new File('log.txt').withPrintWriter{printWriter ->
    printWriter.println('The first line')
    printWriter.write('The second line')
}

 除了file.newPrintWriter() 可以得到一个 PrintWriter,类似方法还有file.newInputStream()file.newObjectInputStream()

分享到:
评论

相关推荐

    Java调用Groovy,实时动态加载数据库groovy脚本

    本文将详细讲解如何在Java应用程序中调用Groovy脚本,实现从MongoDB数据库中读取并实时运行Groovy脚本,以及其背后的原理和优势。 首先,Groovy是一种与Java高度兼容的脚本语言,它可以无缝地与Java代码集成,共享...

    深入探索Groovy脚本:文件操作的艺术

    本文将深入探讨如何使用Groovy脚本进行文件操作,包括文件的创建、读取、写入、删除等基本操作,以及更高级的操作,如文件过滤和搜索。通过实际的代码示例,我们将展示Groovy在文件操作中的优雅和力量。 Groovy提供...

    gstorm, 在groovy脚本中,一个用于数据库和CSV文件的简单 ORM.zip

    gstorm, 在groovy脚本中,一个用于数据库和CSV文件的简单 ORM GStorm - Groovy单个表 ORMGStorm是一个轻量级的持久性 helper,允许你在没有任何样板代码的情况下持久化数据。 它也可以充当CSV文件的和 ORM 。示例...

    groovy模板

    这些Groovy文件可能包含了读取、写入、移动或操作其他文件的代码,如`Guangfa201602.groovy`可能涉及广发银行2016年2月的数据处理。 综上所述,这个压缩包中的Groovy文件涵盖了Groovy语言的多个方面,包括但不限于...

    apache-groovy-sdk-4.0.1下载

    - **简洁的语法**:Groovy的语法比Java更加简洁,减少了不必要的括号和分号,使得代码更易读写。 - **动态类型**:Groovy支持动态类型,这意味着你不需要在声明变量时指定类型,编译器会在运行时自动推断。 - **闭包...

    Android 实现读写U盘文件

    在Android平台上,与U盘...总的来说,通过libaums库,Android应用可以方便地读取和写入U盘中的文件,为移动设备提供了更多扩展存储的可能性。不过,在实际开发中,务必注意处理好各种异常情况,确保用户数据的安全。

    groovy常用Script

    6. **输入/输出**:`input_03.groovy` 可能涉及到了标准输入输出或文件读写,Groovy提供了多种方式处理输入输出,包括`System.in`、`System.out`以及使用`BufferedReader`和`PrintWriter`等类。 7. **语法特性**:...

    Groovy 动态修改XML

    在Java生态系统中,Groovy经常被用来处理XML文档,因为它的动态特性使得XML的读取、修改和生成变得更加简单。 在Groovy中,XML被视为一种对象,可以通过内置的XMLSlurper和XMLParser库来解析和操作。XMLSlurper是...

    Myeclipse Groovy 插件

    "features"目录下的文件代表了插件的特性集合,而"plugins"目录则包含了实际的插件实现,这些文件通常以.jar格式存在,MyEclipse会读取这些文件来提供插件功能。 安装完成后,MyEclipse Groovy插件将为用户提供以下...

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

    此外,为了实现U盘与本地数据的互传,我们可以创建一个工具类,包含读取U盘文件、写入U盘文件、读取本地文件、写入本地文件等方法。这些方法可以利用上述代码片段进行封装,以便在应用程序中方便调用。 需要注意的...

    Grails&Groovy学习资料

    1. Groovy基础:了解Groovy的基本语法、类和对象、集合操作、文件I/O、网络编程等。 2. Grails架构:理解MVC(模型-视图-控制器)设计模式,以及Grails中的Controller、Service、Domain Class等组件。 3. GORM和...

    Groovy学习笔记

    - **I/O操作**: 支持文件读写、网络通信等。 - **高级应用**: 如Web应用开发、持续集成等。 - **正则表达式**: Groovy内置了强大的正则表达式支持。 通过以上内容的学习,读者将能够了解Groovy的基本概念、主要特性...

    apache-groovy-sdk-3.0.8.zip

    5. **领域特定语言(DSLs)**:Groovy非常适合构建DSLs,使得创建定制的配置文件或脚本语言变得简单,例如Grails框架就使用Groovy构建其DSL。 6. **GroovyShell和GroovyConsole**:这两个工具提供了交互式环境,...

    Eclipse Groovy插件

    Eclipse Groovy插件是开发环境中用于增强对Groovy编程语言支持的重要工具。Groovy是一种动态、灵活的Java平台上的编程语言,它结合了面向对象编程、函数式编程和动态语言的特点,使得代码更加简洁易读。在Eclipse...

    目前最新版groovy-2.4.11

    在"apache-groovy-binary-2.4.11.zip"这个压缩包中,用户可以找到Groovy 2.4.11的所有二进制文件,包括编译器、解释器和其他必要的库,使得开发者能够在本地环境中快速开始Groovy的开发工作。这个版本支持JVM(Java ...

    Groovy学习资料(包括Groovy in action 的中英文以及API)

    Groovy的语法比Java更为简洁,支持闭包和匿名函数,这使得代码更易读写。此外,Groovy与Java完全兼容,可以无缝集成到现有的Java项目中,使用Groovy编写的代码可以直接被Java代码调用。 在第二部分,Groovy in ...

    groovy-binary-1.8.6

    - **JAR文件**:包含了Groovy解释器和其他核心库,用于运行Groovy脚本。 - **文档**:可能包括API文档、用户指南和开发者参考,帮助开发者了解和使用该版本的Groovy。 - **示例代码**:可能包含一些示例脚本来展示...

    spring-beans-groovy源码

    在`spring-beans-groovy`中,Groovy的Bean定义被编译为一个`GroovyBeanDefinitionReader`实例,该类负责读取Groovy脚本并转换为Spring的`BeanDefinition`对象。`BeanDefinition`是Spring容器中的核心概念,它包含了...

    groovy-servlet-2.3.2.zip

    4. **jcabi-manifests库**:这是一个专为管理MANIFEST.MF文件而设计的工具库,提供API来方便地操作和读写这些文件,避免手动编辑带来的错误和麻烦。 5. **开源项目**:开源项目意味着源代码对公众开放,开发者可以...

    groovy学习

    Groovy的语法相对简洁,与Java相比,代码更易读写。例如,Groovy支持闭包,这是一种强大的函数式编程概念,可以简化迭代和函数式操作。 Groovy与Java的互操作性是其一大亮点。由于Groovy代码可以无缝调用Java类库,...

Global site tag (gtag.js) - Google Analytics