Groovy的文件操作
发布时间:2020-12-14 16:54:39 所属栏目:大数据 来源:网络整理
导读:groovy 文件操作,对java原有的io进行了扩展,增加了许多闭包后省去了很多逻辑无关代码,同时自动进行资源管理和异常处理。? 读取文件内容:? 使用java代码的基本写法 FileInputStream fin = null; try { fin = new FileInputStream("test.txt"); BufferedRe
groovy 文件操作,对java原有的io进行了扩展,增加了许多闭包后省去了很多逻辑无关代码,同时自动进行资源管理和异常处理。? 读取文件内容:?
FileInputStream fin = null; try { fin = new FileInputStream("test.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(fin)); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (FileNotFoundException e) { // TODO: handle exception } catch (IOException e) { // TODO: handle exception } finally { try { if (fin != null) { fin.close(); } } catch (IOException e2) { // TODO: handle exception } }对一个文件进行读取的时候,基本上都会用到上面的代码,重复的写这些代码让人感觉很枯燥,同时在阅读? 这样的代码的时候也极易干扰视线。真正要干的事情也就是把文件内容输出而已。? 而在groovy中输出文件的内容仅需要一行代码? println new File("test.txt").text 代码里没有流的出现,没有资源关闭的出现,也没有异常控制的出现,所有的这些groovy已经搞定了。? 下面介绍下groovy中File的一些接口:? File file = new File('C:UsersberdyDesktoptest.txt') //使用系统默认的编码处理文件流 file.eachLine {println it } //指定处理流的编码 file.eachLine("utf8") {println it } //指定文件内容行标的起始数字,默认为1,根据需要设置为其他数值 file.eachLine("utf8",10) {str,lineNumber-> println str println lineNumber } //对文件内容的每一行进行分割处理,比较常用在处理csv文件 file.splitEachLine(",") {println it } //在闭包中定义过滤逻辑,对文件内容进行过滤处理 file.filterLine {String str-> if (str.contains('code')) println str }.writeTo(new PrintWriter(System.out)) file.append('hello world!') //转为Writable对象,可重定向输出 file.asWritable() 2、对目录进行操作?
File file = new File('.') file.eachFileMatch(~/.*.txt/) {File it-> println it.name } //使正则表达式匹配文件名 file.eachFileMatch(FILES,~/.*.txt/) { File it-> println it.name } new File(".").eachFileRecurse { println it.getPath(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |