文件读写操作,在编程中经常需要去写的代码,同样在pipeline代码中,一些测试验证的代码也需要去读文件来判断下一步的动作,本篇来介绍如何读文件的groovy代码。然后简单介绍如何写入文件,写入文件比较简单。

1.数据准备

为了演示读文件,我在groovy项目根目录下,新建一个Data.txt的文件,内容如下。

在计算机科学中,闭包(英语:Closure),
又稱词法闭包(Lexical Closure)
或函數閉包(function closures),
是引用了自由变量的函数。
这个被引用的自由变量将和这个函数一同存在,
即使已经离开了创造它的环境也不例外。
所以,有另一种说法认为闭包是由函数和与其相关的
引用环境组合而成的实体。

准备工作就好了,开始用groovy来以各种方式去读文件内容。

2.以字符串方式读取

package com.anthony.demo// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 以字符串方式全部读取
println file.text

打印结果

在计算机科学中,闭包(英语:Closure),
又稱词法闭包(Lexical Closure)
或函數閉包(function closures),
是引用了自由变量的函数。
这个被引用的自由变量将和这个函数一同存在,
即使已经离开了创造它的环境也不例外。
所以,有另一种说法认为闭包是由函数和与其相关的
引用环境组合而成的实体。

3.读取到list容器中

package com.anthony.demo// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 读取到list
def list = file.collect { it }
println list

打印效果是 [xxx这些内容]

4.读取到字符串数组中

package com.anthony.demo// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 读取到数组
def arr = file as String[]
println arr

5.一行一行读取

5.1 每行读取到一个list

package com.anthony.demo// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 每行读取到一个list中
def list = file.readLines()
println list

5.2 一行一行读取,一行是String

package com.anthony.demo// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 一行一行读取
file.eachLine {line ->println line
}

6.二进制文件读取

有些文件是只能通过二进制读取,例如图片,音频等

// 文件位置
def filePath = "Data.txt"
File file = new File(filePath)
// 二进制文件读取
def byte[] contents = file.bytes
println contents

读取效果

[-44, -38, -68, -58, -53, -29, -69, -6, -65, -58, -47, -89, -42, -48, -93, -84, -79, -43, -80, -4, -93, -88, -45, -94, -45, -17, -93, -70, 67, 108, 111, 115, 117, 114, 101, -93, -87, -93, -84, 13, 10, -45, -42, -73, 81, -76, -54, -73, -88, -79, -43, -80, -4, -93, -88, 76, 101, 120, 105, 99, 97, 108, 32, 67, 108, 111, 115, 117, 114, 101, -93, -87, 13, 10, -69, -14, -70, -81, -108, -75, -23, 93, -80, -4, -93, -88, 102, 117, 110, 99, 116, 105, 111, 110, 32, 99, 108, 111, 115, 117, 114, 101, 115, -93, -87, -93, -84, 13, 10, -54, -57, -46, -3, -45, -61, -63, -53, -41, -44, -45, -55, -79, -28, -63, -65, -75, -60, -70, -81, -54, -3, -95, -93, 13, 10, -43, -30, -72, -10, -79, -69, -46, -3, -45, -61, -75, -60, -41, -44, -45, -55, -79, -28, -63, -65, -67, -85, -70, -51, -43, -30, -72, -10, -70, -81, -54, -3, -46, -69, -51, -84, -76, -26, -44, -38, -93, -84, 13, 10, -68, -76, -54, -71, -46, -47, -66, -83, -64, -21, -65, -86, -63, -53, -76, -76, -44, -20, -53, -4, -75, -60, -69, -73, -66, -77, -46, -78, -78, -69, -64, -3, -51, -30, -95, -93, 13, 10, -53, -7, -46, -44, -93, -84, -45, -48, -63, -19, -46, -69, -42, -42, -53, -75, -73, -88, -56, -49, -50, -86, -79, -43, -80, -4, -54, -57, -45, -55, -70, -81, -54, -3, -70, -51, -45, -21, -58, -28, -49, -32, -71, -40, -75, -60, 13, 10, -46, -3, -45, -61, -69, -73, -66, -77, -41, -23, -70, -49, -74, -8, -77, -55, -75, -60, -54, -75, -52, -27, -95, -93]

7.写入文件

先来看看,写入两行内容到一个文件。

package com.anthony.demo// 文件位置
def filePath = "Data1.txt"
File file = new File(filePath)
// 写入文件
file.write("This is line1")
file << "\nThis is line2"
println file.text

会写入两行内容,如果接着运行下面代码,会清空上面两行再写入新的内容

package com.anthony.demo// 文件位置
def filePath = "Data1.txt"
File file = new File(filePath)
// 写入文件
file.write("This is line1")
file << "\nThis is line2"
file.text = "This is line3"
println file.text

所以,如果要使用file.text="xxx"的时候,一定要想好是不是要覆盖前面已存在的内容。

如果不想覆盖,就用append方法

package com.anthony.demo// 文件位置
def filePath = "Data1.txt"
File file = new File(filePath)
// 写入文件
file.write("This is line1")
file << "\nThis is line2"
file.append("\nThis is line3")
println file.text

Groovy的入门教程暂时更新到这里,后面的知识是OOP,也就是类和对象以及继承,接口等知识。就我所知,在CI CD pipeline中,我们使用groovy语法有了这些内容是足够,这些groovy语法加上jenkins上pipeline的语法和插件提供的那些方法,足以支撑你完成相关pipeline代码的编写。

Groovy快速入门-12-Groovy如何读文件内容和写入文件相关推荐

  1. php 覆盖写文件内容,php写入文件不覆盖的实例讲解

    php写入文件不覆盖的实例讲解 file_put_contents():向文件中写入内容并且不覆盖之前的内容. 步骤: 1.新建文件 2.声明要写入内容的文件 3.这个文件的内容如图 4.file_g ...

  2. Gradle用户指南(章9:Groovy快速入门)

    Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...

  3. Android Gradle(三)Groovy快速入门指南

    本文首发于微信公众号「刘望舒」 原文链接:Groovy快速入门看这篇就够了 前言 在前面我们学习了为什么现在要用Gradle?和Gradle入门前奏两篇文章,对Gradle也有了大概的了解,这篇文章我 ...

  4. Gradle核心思想(三)Groovy快速入门指南

    本文首发于微信公众号「刘望舒」 关联文章 Gradle核心思想(一)为什么现在要用Gradle? Gradle核心思想(二)Gradle入门前奏 Gradle核心思想(三)Groovy快速入门指南 G ...

  5. python打开文件并读取内容-Python实现的读取文件内容并写入其他文件操作示例

    本文实例讲述了Python实现的读取文件内容并写入其他文件操作.分享给大家供大家参考,具体如下: 文件目录结构,如图: read_file.py是工作文件,file_test.py是读取文件源,wri ...

  6. csv文件 内容转义_CSV文件如何同时转义逗号和双引号?

    小编典典 有几个库.这是两个示例: 阿帕奇共享郎包括一类特殊的逃避或UNESCAPE字符串(CSV,EcmaScript的,HTML,Java和JSON,XML) org.apache.commons ...

  7. python同时对文件进行读写操作-Python实现的读取文件内容并写入其他文件操作示例...

    本文实例讲述了Python实现的读取文件内容并写入其他文件操作.分享给大家供大家参考,具体如下: 文件目录结构,如图: read_file.py是工作文件,file_test.py是读取文件源,wri ...

  8. shell脚本:实现文件覆盖写入、文件内容追加写入

    文章目录 shell脚本:实现文件覆盖写入.文件内容追加写入 实现说明: 重要代码: 1. 覆盖写文件 ">" 2. 追加写文件">>" sh ...

  9. python连续写入文件操作_Python实现的读取文件内容并写入其他文件操作示例

    本文实例讲述了Python实现的读取文件内容并写入其他文件操作.分享给大家供大家参考,具体如下: 文件目录结构,如图: read_file.py是工作文件,file_test.py是读取文件源,wri ...

最新文章

  1. JS深入--词法作用域、执行上下文与闭包
  2. C++ assert 断言使用
  3. @FunctionalInterface
  4. filegee为啥没变动也更新_2020/10/07|02=下一步行动|evernote更新以及后续影响
  5. VS Code 0.5添加ES6支持和Git工具改进
  6. Oracle ITL(Interested Transaction List)理解
  7. ajax 传送很多html字符串到前台例子
  8. iOS The binary you uploaded was invalid
  9. em算法详细例子及推导_EM算法入门教程
  10. VB6 GDI+ 入门教程[7] Graphics 其他内容
  11. 构建我的第一个 22TB 容量的家庭存储服务器
  12. python源代码怎么用_Python写完代码怎么用
  13. 2018年全国多校算法寒假训练营练习比赛(第三场)I 三角形【皮克公式+gcd】
  14. 搜狗新闻文本分析实例代码
  15. 最新上市公司商誉减值损失数据
  16. noip2015初赛入围名单
  17. 计算机d盘给c盘,怎么把D盘变成系统盘?
  18. 华为linux笔记本i3和i7的区别,华为MateBook 13 i3版性能如何 华为MateBook 13 i3版笔记本上手体验...
  19. 引导方法深度补全系列—晚期融合模型—1—《Dense depth posterior (ddp) from single image and sparse range》文章细读
  20. 2019杭州西溪龙舟文化节在西安大明宫举行

热门文章

  1. Centos7——hostname和hosts
  2. 国内慈善事业的现状及存在的问题
  3. 国庆假期吃肥仔烧排骨
  4. [C# VSTO Word]【大纲级别OutlineLevel】对比【列表级别ListLevelNumber】
  5. 富士通服务器irmc账号密码,富士通服务器Primergy RX1330 M4评测 一个很酷的客户
  6. String数组转Long数组
  7. 一些常用医学名词总结
  8. 在烟台的海边 2011-8-12
  9. 学习ORACLE-RHEL7安装Oracle12cR2
  10. 云通讯市场蓝海转红,有信为何还要杀入?