当前位置: 首页 > 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.dtcms.com/a/508859.html

相关文章:

  • 从零搭建本地化 RAG 聊天助手:从环境配置到核心逻辑全解析
  • 福建建设局网站旅游网站建设代码
  • 云南城市建设职业学院成绩查询网站将网站做成logo怎么做
  • svn使用和idea集成
  • 汕头房产网站建设苏州怎么做网站
  • 基于springboot的知识管理系统开发与设计
  • ORM(Tortoise-ORM)操作
  • 深圳外包网站网站域名切换
  • 空间代码网站百度认证是什么
  • 电子商务网站建设与管理的书wordpress 自定义栏目 删除
  • 搜狗站长推送工具2003访问网站提示输入用户名密码
  • wordpress二维码动态图片大小短视频seo什么意思
  • 免费的网站域名申请中国建设银行陕西分行官方网站
  • 渗透测试项目总结
  • 网站如何接广告赚钱网页设计师简历模板
  • 爱站挖词网站建设市场推广招聘
  • 深圳网站建设品牌策划软文写作的三个要素
  • 【spring如何扫描一个路径下被注解修饰的类】
  • Cuda reduce算子实现与优化
  • 计网4.2 IPV4
  • 做网站需要备案网站建设会计科目
  • 网站开发技术什么软件可以制作图片
  • 解码Linux文件IO之BMP 图像原理与应用
  • 串口转以太网模块在电梯控制柜中的透明改造
  • Git 检出到HEAD 再修改提交commit 会消失解决方案
  • 徐州网站建设方案推广4399电脑版网页链接
  • 利用 Trie 树对仅由小写字母构成的多个字符串按字典序排序
  • 曲沃网站建设网站流量怎么提升
  • 从 KaTeX 到智能渲染:构建 Vue + LLM 的公式可视化体系
  • 大数据做网站流量分析seo推广的特点