Unmi 学习 Groovy 之文件 *** 作

Unmi 学习 Groovy 之文件 *** 作,第1张

概述一:Java 与 Groovy 读文件 *** 作比较 Groovy 对 java.io.File 进行了扩展,增加了一些接受闭包参数和简化文件 *** 作的方法。作为对比,我们还是先来看看 java 中读取文件的两种常方法,分别是行读取和字节缓冲区读取: //--BufferedReader 行读取BufferedReader br = null;try { br = new BufferedRea @H_301_4@

一:Java 与 Groovy 读文件 *** 作比较

Groovy 对 java.io.file 进行了扩展,增加了一些接受闭包参数和简化文件 *** 作的方法。作为对比,我们还是先来看看 java 中读取文件的两种常方法,分别是行读取和字节缓冲区读取:

从上面可看到,采用 Java 传统方式来读取文件内容,不仅代码行多,而且还必须自己用 try/catch/finally 来处理异常和资源的关闭。现在马上来看看 Groovy 完成以上工作的代码是怎么的,只要一行代码:

不需要 Reader 或 inputstream、不用关闭语名和异常处理。我们所要做的就是编写业务逻辑,剩下的工作 Groovy 会帮你料理的。当然,如果文件找不到,也是会出现 java.io.fileNotFoundException 异常的。你可以捕获这个要处理的异常,但仍然不必担心资源的释放。


至于写文件,Groovy 的表现也比较抢眼。下面我们来体验一下 Groovy 对 java.io.file 扩展的几个方法的使用。关于 file 的所有扩展方法的使用请参考 Groovy JDK -- http://groovy.codehaus.org/groovy-jdk/ 中 java.io.file(http://groovy.codehaus.org/groovy-jdk/java/io/File.html) 部分。


二:Groovy 对 java.io.file 扩展方法举例

1. eachline -- 打开和读取文件的每一行


2. readlines -- 其作用基本与 eachline 相同,但它不接受闭包为参数,而是把文件行读到一个 List 中


3. splitEachline -- 读取文件的每一行,然后对行以指定分隔符分割成数组。不用再多说了,这个方法对处理 CSV 文件那可是相当的高效。


4. eachByte -- 处理二进制文件,以字节级访问文件,这个方法相当于 eachline() 方法。


5. readBytes -- 自然,处理二进制文件,以字节级访问文件,这个方法相当于 readlines() 方法了


6. write -- Groovy 用这个方法写文件真是太直观了


以上使用了三重引用语法,其中的文本保留格式的写入到文件中。注意上面写法在文件首尾都会有一个空行,除非起始和结束字符都要紧贴 """;还有上面方法写的文件用词本打开会是挤在一行,用 editplus 打开是多行,因为它采用的是 linux 下的 /n 换行,而不是 windows 下的 /r/n 换行。、

7. append -- 与 write 覆写文件不同,append 是在文件后追加内容

8. eachfile -- 功能上类似 java.io.file 的 Listfiles() 方法。用来列举路径中的每个文件(包括目录),传给闭包处理


9. eachfileRecurse -- 以深度优先的方式递归遍历路径,列出文件(包括目录),传给闭包处理


10. …… 再重复一下,其他 Groovy 对 java.io.file 的扩展方法请参考 http://groovy.codehaus.org/groovy-jdk/java/io/File.html。如 eachDir()、eachDirmatch()、eachDirRecurse()、eachfilematch()、filterline()、newinputStream()、newOutputStream()、newReader()、newPrintWriter()、withinputStream()、withOutputStream()、withReader()、withPrintWriter() 等等。还要留意一下有一些方法是可以指定字符集的。参考:1. 《Java 脚本编程语言、框架与模式》第 4 章

@H_301_4@ @H_301_4@ @H_301_4@ 总结

以上是内存溢出为你收集整理的Unmi 学习 Groovy 之文件 *** 作全部内容,希望文章能够帮你解决Unmi 学习 Groovy 之文件 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存