我是靠谱客的博主 知性魔镜,最近开发中收集的这篇文章主要介绍groovy 学习(三)groovy的高级操作groovy对xml文件的处理groovy 对文件的处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

groovy的高级操作

对json的操作

//列表转换成Json
def list = [new Person(name: 'david',age: 13),new Person(name: 'jane',age: 43)]
println JsonOutput.toJson(list)

//转换Object
def jsonSlpuer = new JsonSlurper()
//jsonSlpuer.parse()

//模拟发送请求和数据转换
def getNetworkDate(String url){
    //发送http请求
    def connection = new URL(url).openConnection()
    connection.setRequestMethod("GET")
    connection.connect()
    def response = connection.content.text
    //将json转对象
    def jsonSlpuer = new JsonSlurper()
    return jsonSlpuer.parseText(response)
}

def response = getNetworkDate('')
println response.data.head.name

groovy对xml文件的处理

解析XML文件

def xml = ''' '''
def xmlSluper = new XmlSlurper()
def result = xmlSluper.parseText(xml)
println result.value.books[0].book[0].title.text()
println result.value.books[0].book[0].@avaliable

//根据作者赛筛选数据
def bookList = []
result.value.books.each{ books->
    books.book.each{ book->
        def author = book.author.text()
        if(author.equals("李刚")){
            bookList.add(book.title.text())
        }
    }
}

//深层遍历
def titles = result.depthFirst().findAll {book->
    return book.author.text() == '李刚'? true :false

}
//创建XML
def sw = new StringWriter()
def xmlBuilder = new MarkupBuilder(sw)
xmlBuilder.langs(type:'current'){
    language(flavor:'static')
    language(flavor:'public')
    language(flavor:'private')
}

println sw

groovy 对文件的处理

//读取文件
def file = new File('../../helloGroovy.iml')
file.eachLine {line->
    println line
}
打印出全部的文件信息
println file.text
打印一部分文件的信息
def  reader = file.withReader {reader->
    char[] buffer = new char[100]
    reader.read(buffer)
    return buffer
}
println reader

def copy(String sourcePath,String destationPath){
    def desFile = new File(destationPath)
    if(!desFile.exists()){
        desFile.createNewFile()
    }
    //copy
    new File(sourcePath).withReader {reader->
        def lines = reader.readLines()
        desFile.withWriter {writer->
            lines.each {line->
                writer.append(line)
            }
        }
    }
    return true
}
def copy = copy('../../helloGroovy.iml','../../helloGroovy2.iml')
//测试存/读取对象
def saveObject(Object obj,String path){
    try{
        def desFile = new File(path)
        if(!desFile.exists()){
            desFile.createNewFile()
        }
        desFile.withObjectOutputStream {out->
            out.writeObject(obj)
        }
        return true
    }catch(Exception e){
        e.printStackTrace()
        reutrn false
    }
}
def readObject(String path){
    def obj = null
    try{
        def file = new File(path)
        if(file == null || !file.exists()){return null}
        //文件中读取对象
        file.withObjectInputStream {input->
            obj=input.readObject()
        }
    }catch (Exception e){

    }
    return obj
}
//测试
def person = new Person(name: "david",age:17)
//saveObject(person,'../../person.bin')
def result = (Person)readObject('../../person.bin')
println  "name: ${result.name},age:${result.age}"

 

最后

以上就是知性魔镜为你收集整理的groovy 学习(三)groovy的高级操作groovy对xml文件的处理groovy 对文件的处理的全部内容,希望文章能够帮你解决groovy 学习(三)groovy的高级操作groovy对xml文件的处理groovy 对文件的处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部