当前位置: 首页 > news >正文

吉安网站开发长春网站建设模板

吉安网站开发,长春网站建设模板,网站制作能赚多少钱,施工合同在哪个建设网站下载文章目录 前言引入包yaml原始内容操作目标具体代码执行查看结果总结: 前言 之前有个需求,动态修改ubuntu20的ip,看了下: 本质上是修改01-netcfg.yaml文件,然后执行netplan apply就可以了。 所以,需求就变成了 如何对ya…

文章目录

    • 前言
    • 引入包
    • yaml原始内容
    • 操作目标
    • 具体代码
    • 执行
    • 查看结果
    • 总结:

前言

之前有个需求,动态修改ubuntu20的ip,看了下: 本质上是修改01-netcfg.yaml文件,然后执行netplan apply就可以了。
所以,需求就变成了 如何对yaml文件的内容进行读取,修改,写入。

引入包

其实springboot提供了2个maven的包用于解析yaml(springboot的各种配置文件都是yaml),引入:

	<!-- Jackson (用于JSON处理) --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><!-- SnakeYAML (用于YAML解析和生成) --><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId></dependency>

yaml原始内容

network:version: 2renderer: networkdethernets:eth0:dhcp4: falseaddresses:- 192.168.150.1/24optional: trueeth1:dhcp4: falseaddresses:- 192.168.150.1/24optional: trueenp3s0:dhcp4: trueaddresses: []dhcp-identifier: macoptional: trueenp4s0:dhcp4: trueaddresses: []dhcp-identifier: macoptional: trueenp6s0:dhcp4: trueaddresses: []dhcp-identifier: macoptional: trueenp7s0:dhcp4: trueaddresses: []dhcp-identifier: macoptional: trueenp8s0:dhcp4: falseaddresses:- 192.168.150.1/24dhcp-identifier: macoptional: true

操作目标

目前的配置文件etho网卡是动态的获取ip,现在把配置文件ech修改如下:
固定ip:dhcp4 --》 false
添加网卡: gateway4: 172.16.10.254
设置ip地址:
设置dns,不然不能上外网
在这里插入图片描述

具体代码

public static void main(String[] args) {try {// Step 1: 读取YAML文件并加载为Map, 输入YAML文件路径InputStream inputStream = new FileInputStream("01-netcfg.yaml");Yaml yaml = new Yaml();Map<String, Object> yamlMap = yaml.load(inputStream);// Step 2: 使用ObjectMapper将Map转换为JSON字符串ObjectMapper om = new ObjectMapper();String jsonStr = om.writeValueAsString(yamlMap);// Step 3: 将JSON字符串解析成JsonNode,便于修改JsonNode rootNode = om.readTree(jsonStr);// Step 4: 修改eth0节点JsonNode ethernetsNode = rootNode.path("network").path("ethernets");// 获取eth0节点并修改其值JsonNode eth0Node = ethernetsNode.path("eth0");// 创建新的eth0配置((ObjectNode) eth0Node).put("dhcp4", false);((ObjectNode) eth0Node).putArray("addresses").add("172.16.10.43/24");((ObjectNode) eth0Node).put("gateway4", "172.16.10.254");// 设置新的DNS地址作为数组JsonNode nameserversNode = eth0Node.path("nameservers");// 使用ArrayNode来生成数组格式ArrayNode arrayNode = om.createArrayNode();arrayNode.add("114.114.114.114");arrayNode.add("8.8.8.8");arrayNode.add("8.8.4.4");((ObjectNode) nameserversNode).set("addresses", arrayNode);// Step 5: 将修改后的JsonNode转换为Map,这里就是将JsonNode转换为MapMap<String, Object> modifiedMap = om.convertValue(rootNode, Map.class);// Step 6: 使用SnakeYAML将修改后的Map转换为YAML格式DumperOptions options = new DumperOptions();options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);Yaml yamlWriter = new Yaml(options);StringWriter stringWriter = new StringWriter();yamlWriter.dump(modifiedMap, stringWriter);// Step 7: 将新的YAML写回文件try (BufferedWriter writer = new BufferedWriter(new FileWriter("01-netcfg.yaml"))) {writer.write(stringWriter.toString());}System.out.println("YAML updated successfully!");} catch (IOException e) {e.printStackTrace();}

执行

在这里插入图片描述

查看结果

在这里插入图片描述
显示已经修改!!

总结:

文章主要介绍了如何使用Java操作YAML文件,具体实现了读取、修改和写入YAML文件的过程。通过引入Jackson和SnakeYAML两个包,实现了将YAML文件内容转换为Map,然后再将Map修改后重新转换为YAML格式并写回文件。

在具体操作目标上,通过代码示例实现了将原始YAML文件中的某一节点进行修改,包括修改网络配置,设置固定IP地址、网关、DNS等。最后展示了执行结果,并验证配置已经修改成功。

通过本文的示例,读者可以了解如何在Java中操作YAML文件,实现对YAML配置文件的动态修改,为实际项目中类似需求提供了解决思路和代码实现。


本文完

http://www.sczhlp.com/news/24943/

相关文章:

  • 手机网站与PC网站视频app推广
  • wordpress引用视频长沙seo排名扣费
  • 如何在自己的网站上做直播有什么功能
  • 成都市做网站公司软件推广方案经典范文
  • 加强酒店网站建设的建议短视频seo询盘获客系统软件
  • 组装21 人物动画的简单实现 角色显示卡顿的问题解决
  • NFS使用
  • P3605解题报告
  • 生成的文件分解
  • VMware虚拟机Centos联网 - Yu
  • asp.net 做网站源代码seo工作职责
  • 杭州做网站建设优化最狠的手机优化软件
  • 网站建设客服话术比较好网站制作公司
  • 深圳建设网站费用明细网站优化要多少钱
  • 建设企业网站企业网上银行拼多多搜索关键词排名
  • flutter入门笔记 - ---空白--
  • java双亲委派机制
  • AI Compass前沿速览:DINOv3-Meta视觉基础模型、DeepSeek-V3.1、Qwen-Image、Seed-OSS、CombatVLA-3D动作游戏模型、VeOmni训练框架
  • JNI内存方面说明以及相关类型手动释放内存 - tomato
  • Cloudflare Tunnel 内网穿透工具(Windows + 自定义域名)
  • 西宁网站建设加盟代理线上推广有哪些
  • 怎麽做网站如何分析百度指数
  • 游戏排行榜前十名网站seo优化课程
  • 怎么做英文版网站网络推广seo教程
  • seo网站沙盒期天津百度快速优化排名
  • 什么网站可以免费做视频吉林seo网络推广
  • 大连建设网站制作seo实战密码
  • flash 好的网站百度客服中心人工电话
  • 南京大学夏令营带队记
  • 设计私有协议时,TLV类型的二进制格式和json格式 应该怎么选?