我是靠谱客的博主 单薄鞋垫,这篇文章主要介绍groovy的IO操作--真是丧心病狂,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//groovy用it表InputStream def targetFile=new File("build.gradle") def buffer=new byte[1024] def hasRead targetFile.withInputStream{ while((hasRead=it.read(buffer))!=-1) println(new String(buffer,0,hasRead)) } task linereadfile <<{ //it为每一行 读行循环 def targetFile=new File('build.gradle') targetFile.eachLine{ println it } } //理解 /*eachLine内部... def eachLine(Closure closure){ 循环{ it='一行数据' closure(it)//闭包对象调用方法closure.call(实参) } } */ task copyfile <<{ //srcFile-->targetFile复制文件 def srcFile = new File("build.gradle") def targetFile = new File("haswrite.txt") targetFile.withOutputStream{ def os=it//输出流 srcFile.withInputStream{ def ins=it//输入流 os << ins//利用OutputStream的<<操作符重载,完成从inputstream到OutputStream //的输出 } } } task readfile <<{ //一次性读完以byte[]形式返回 def targetFile=new File("build.gradle") println new String(targetFile.getBytes(),"utf-8")// <==文件内容一次性读出,返回类型为byte[] } 利用Groovy的GPath 解析xml文件资源.. import groovy.util.slurpersupport.GPathResult //第一步,创建XmlSlurper类 def xparser = new XmlSlurper() def targetFile = new File("test.xml") //轰轰的GPath出场 GPathResult gpathResult =xparser.parse(targetFile) //开始玩test.xml。现在我要访问id=4的book元素。 //下面这种搞法,gpathResult代表根元素response。通过e1.e2.e3这种 //格式就能访问到各级子元素.... def book4 = gpathResult.value.books.book[3] //得到book4的author元素 def author = book4.author //再来获取元素的属性和textvalue println author.text() println author.@'id' //assert author.text() == ' Manuel De Cervantes ' //获取属性更直观 //author.@id == '4' 或者 author['@id'] == '4' //属性一般是字符串,可通过toInteger转换成整数 //author.@id.toInteger() == 4 //好了。GPath就说到这。再看个例子。我在使用Gradle的时候有个需求,就是获取AndroidManifest.xml版本号(versionName)。有了GPath,一行代码搞定,请看: def androidManifest = xparser.parse("AndroidManifest.xml") //获取application的android:label属性,匹配不到则无任何异常输出. println androidManifest.application[0].@'android:label' //或者 println androidManifest.@'android:versionName'

最后

以上就是单薄鞋垫最近收集整理的关于groovy的IO操作--真是丧心病狂的全部内容,更多相关groovy内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部