Groovy学习-IO/文件操作

2023-05-16

读取文件

// 读取文本文件并打印每一行文本
new File('./', 'a.txt').eachLine{ line ->
    println line
}

// eachLine方法是Groovy为File类自动添加的方法,同时提供多个变体方法,比如你想知道读取的行数,你可以使用它的变体方法,如下
new File('./', 'a.txt').eachLine{ line, nb ->
    println "Line $nb: $line"
}

// 如果你需要收集文本文件的每一行到一个列表中,你可以这样做:
def list = new File('./', 'a.txt').collect {it}

// 用as操作符来讲文件内容转为String数组
def array = new File('./', 'a.txt') as String[]

写入文件

// 向文件中写入数据,会删除掉原来文件中的数据
// 方式一
new File('./','a.txt').withWriter('utf-8') { writer ->
    writer.writeLine 'Into the ancient pond'
    writer.writeLine 'A frog jumps'
    writer.writeLine 'Water’s sound!'
}
// 方式二
new File('./','a.txt') << '''Into the ancient pond
A frog jumps
Water’s sound!'''

文件树遍历

//在目录的每一个文件直行闭包代码
def dir = new File('./')
dir.eachFile { file ->
    println file.name
}

//在目录中符合匹配模式的文件直行闭包代码
dir.eachFileMatch(~/.*\.txt/) { file ->
    println file.name
}

//在指定目录递归查找,并在每一个文件和目录直行闭包代码
dir.eachFileRecurse { file ->
    println file.name
}

//在指定目录递归查找,并在每一个文件直行闭包代码
dir.eachFileRecurse() { file ->
    println file.name
}

// 对于更复杂的遍历技术可以使用traverse方法,你需要设置一个特殊的标志指示这个遍历要做什么
dir.traverse { file ->
    if (file.directory && file.name=='bin') {
        //如果当前file是一个目录或者它的名字是 bin ,则停止遍历
        println '停止遍历'
    } else {
        //打印文件名并继续遍历
        println file.name
        println '继续遍历'
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy学习-IO/文件操作 的相关文章

随机推荐

  • 【STM32学习】(一)CubeMX安装

    安装的所需工具 xff1a 链接 xff1a https pan baidu com s 100vmpGWgrkjasTqhxFFcww 提取码 xff1a zw9i 1 安装JRE 打开JPE安装包 xff1a 然后按照默认即可安装成功
  • 【STM32学习】(二)CubeMX基于HAL库GPIO输出/输入

    本文主要记录下初学cubeMX进行HAL库配置 单片机 xff1a STM32F407ZGT6 一 新建工程 打开CubeMX xff0c Access To MCU SELETOR 二 配置CubeMX 1 设置Debug方式 因为我用的
  • 【科研】文献下载神器方式汇总

    目录 1 X MOL 2 文献小镇 3 文献部落 4 柠檬文献 5 SCI Hub 6 SCI Down 1 X MOL X MOL科学知识平台 学术综合平台 xff0c 查询和下载集成一体 2 文献小镇 sci hub网址 SCIHUB
  • 【Ubuntu】Ubuntu20.04安装GPU显卡驱动

    一 安装显卡驱动 方式一 xff1a 图形界面安装 等待安装即可 方式二 xff1a 命令行安装 sudo apt get install nvidia driver 515 有些显卡只支持455 安装完成记得重启一下 xff0c 然后验证
  • 【Ubuntu】Ubuntu20.04安装NVIDIA Container Toolkit

    基于Apollo的CUDA的docker镜像需要依赖于NVIDIA Container Toolkit xff0c 运行以下命令安装NVIDIA Container ToolKit xff1a distribution 61 etc os
  • 【Cyber RT】Apollo Cyber RT安装

    一 下载源码 克隆Apollo 源码仓库 git clone https gitee com ApolloAuto apollo git xff08 耗时30min xff09 二 启动Apollo Docker 开发容器 进入到Apoll
  • 【导航规划】导航规划背景知识总结

    导航规划类型 xff1a 固定路径引导 1 有人工标识导引 xff08 AGV xff09 磁条导航 磁感应线导航 磁钉导航 二维码导航 AGV xff1a Automatic Guided Vehicle 自动导引车 优点 xff1a 技
  • 【Ubuntu】树莓派4B安装Ubuntu18.04(超详细)

    本教程主要记录下近期给树莓派4B安装Ubuntu18 04的过程 xff01 xff01 xff01 目录 一 下载Ubuntu18 04 Server版本 二 烧录 三 修改WiFi登录以及树莓派分辨率 1 修改wifi 2 修改分辨率
  • 【Summary】机器人方法汇总

    目录 一 软件安装篇 1 安装ROS 2 树莓派4B安装Ubuntu18 04 3 Ubuntu20 04安装GPU 4 Ubuntu20 04安装NVIDIA Container Toolkit 5 Apollo Cyber RT安装 二
  • linux---生产者和消费者模型(条件变量和信号量实现)

    问题的提出 在我们对一些全局变量的进行非原子性操作的时候就可能出现非线程安全 xff0c 比如我们吃面的问题 我们做面的人就是生产者 xff0c 吃面的人就是我们的消费者 xff0c 当我们的消费者需要吃面的时候就唤醒我们的生产者进行生产
  • 【SLAM学习】一些必备依赖包的安装与问题总结

    Ceres xff1a 下载地址 xff1a https github com ceres solver ceres solver releases tag 1 14 0 1 修改 sources list sudo gedit etc a
  • 【数据集】数据集下载总结

    1 AI Studio 数据集 开放数据集 百度AI Studio 人工智能学习与实训社区 2 天池 数据集 数据集 阿里系唯一对外开放数据分享平台 3 Papers with code 数据集 Machine Learning Datas
  • 【RealSense】L515学习记录

    Intel RealSense SDK 2 0的安装 1 注册服务器的公钥 sudo apt key adv keyserver keyserver ubuntu com recv key F6E65AC044F831AC80A06380C
  • 【YOLOv5】记录YOLOv5的学习过程

    以下记录的是Ubuntu20 04版本 xff0c 其他Ubuntu版本也相差不大 一 安装pytorch GPU版本 显卡驱动 CUDA cuDNN 下载pytorch GPU版本 xff1a 最新版本链接 xff1a Start Loc
  • 【Kinect】Ubuntu20.04 安装Azure Kinect Sensor

    本文主要记录Ubuntu20 04 安装Azure Kinect Sensor SDK Azure Kinect 人体跟踪 SDK官网 xff1a https learn microsoft com zh cn azure Kinect d
  • 【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

    本文主要记录基于Ubuntu20 04环境下 xff0c 对普通的ORB SLAM3和稠密版本的ORB SLAM3进行环境的配置 一 配置ORB SLAM3 lt 普通版本 gt 1 安装ROS开发环境 这里采用鱼香ros的一键安装 xff
  • 【工具】记录安装Zsh

    本文主要记录下安装Zsh的过程 xff0c 方便后续换设备安装 xff01 与大家共同学习 xff01 xff08 Ubuntu 20 04 xff09 安装zsh sudo apt install zsh 2 下载oh my zsh 并安
  • 【Ubuntu】记录Ubuntu缺少启动项问题

    今天突然发现自己装的Ubuntu没有启动项 xff0c 也就是没有那个EFI分区 xff0c 人都麻了 xff01 原因是先把装Ubuntu的固态拿了出来 xff0c 再装的win11 xff0c 结果win11可以用了 xff0c Ubu
  • 【SLAM学习】基于Pangolin绘制运动轨迹

    Pangolin库 是一个轻量级的跨平台视图控制库 xff0c 主要用于可视化 交互和调试三维数据 该库提供了一系列图形界面工具 xff0c 包括窗口 OpenGL渲染器 3D相机 图像显示等 xff0c 可以方便地进行三维数据可视化和交互
  • Groovy学习-IO/文件操作

    读取文件 读取文本文件并打印每一行文本 new File 39 39 39 a txt 39 eachLine line gt println line eachLine方法是Groovy为File类自动添加的方法 xff0c 同时提供多个