读取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()
等