groovy(12)-文件操作

2018-11-12  本文已影响0人  高斯巴

//*遍历文件内容

def file = new File('../../ hello-groovy.iml')
file.eachLine {

line->println( line)

 <module type="JAVA_MODULE" version="4">
 <component name="NewModuleRootManager" inherit-compiler-output="true">
 <exclude-output />
 <content url="file://$MODULE_DIR$">
 <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
 </content>
 <orderEntry type="inheritedJdk" />
 <orderEntry type="sourceFolder" forTests="false" />
 <orderEntry type="library" name="groovy-2.4.15" level="application" />
 </component>
 </module>*/ ```
} 



##//*获取文件的内容

def text = file.getText()
println(text)
```/ * <?xml version =“1.0”encoding =“UTF-8”?>

 <module type="JAVA_MODULE" version="4">
 <component name="NewModuleRootManager" inherit-compiler-output="true">
 <exclude-output />
 <content url="file://$MODULE_DIR$">
 <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
 </content>
 <orderEntry type="inheritedJdk" />
 <orderEntry type="sourceFolder" forTests="false" />
 <orderEntry type="library" name="groovy-2.4.15" level="application" />
 </component>
 </module>*/

//*获取文件另一种方式,按行读取,返回一个列表集合

def result = file.readLines()
println(result.toListString())
// [<?xml version =“1.0”encoding =“UTF- 8“?>,<module type =”JAVA_MODULE“version =”4“>,
// <component name =”NewModuleRootManager“inherit-compiler-output =”true“>,
// <exclude-output />,<content url =“file:// MODULE_DIR”>,
// <sourceFolder url =“file:// MODULE_DIR / src”isTestSource =“false”/>,
// </ content>,<orderEntry type =“ inheritedJdk“/>,
// <orderEntry type =”sourceFolder“forTests =”false“/>,
// <orderEntry type =”library“name =”groovy-2.4.15“level =“application”/>,
// </ component>,</ module>]

//*获取文件部分内容(前20个字符)

def reader = file.withReader {

reader->char [] buffer=new char[20]
reader.read(buffer)
buffer

}
println(reader)// <?xml version =“1.0”

//*写文件

def writer = file.withWriter {闭包}

//*文件拷贝,groovy会自己关闭流

def results = copy('../ .. /hello-groovy.iml','..////hello-groovy32.iml')println(results)// true或false

def copy(String sourcePath,String destationPath){

try{
//创建目标文件
def desFile=new File(destationPath)
if(!desFile.exists()){
desFile.createNewFile()
}
//开始拷贝
new File(sourcePath).withReader {
reader->def lines=reader.readLines()
desFile.withWriter {
writer->
lines.each {
line->writer.append(line+'\r\n')
}
}
}
return truea
}catch (Exception e){

}
return false
}

//*对象的读写

ApplicationManager.init()
def person = PersonManager.createPerson('li',34)
def result3 = saveObject(person,'.. / .. / person.txt')

def result4 =(Person)readObject('../../ person.txt')
println(“{result4.name} ::: {result4.age}”)

//*保存对象

def saveObject(Object obj,字符串路径){

try{
//目标文件创建
def desFile=new File(path)
if(!desFile.exists()){
desFile.createNewFile()
}
//开始写object
desFile.withObjectOutputStream {
out->out.writeObject(obj)
}
return true
}catch (Exception e){

}
return false
}

//*读取对象

def readObject(String path){

def obj=null
try{
def desFile=new File(path)
if(!desFile.exists()|| desFile==null)return null
desFile.withObjectInputStream {input ->
obj=input.readObject()
}

}catch (Exception e){

}
return obj
}

上一篇下一篇

猜你喜欢

热点阅读