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

Java 生成和读取JSON文件

下面的demo当中 ,是将json文件放到了zip包当中。如果不需要,可以拿掉。

1、生成对象JSON文件

	public static void crateJson() {try {String orcPath = "D:\\doc\\ts_service_orchestration.json";// 对象集合或者对象都可以List<DataPO> dataPOList = new ArrayList<>();String jsonString = JSONObject.toJSONString(dataPOList);// 生成json文件tempFile(orcPath, jsonString);FileInputStream fileInputStream = null;int length;byte[] b = new byte[1024];int len;String path =  "D:\\doc\\压缩包.zip";File zipfile = new File(path);if (!zipfile.exists()) {zipfile.createNewFile();}// 将json文件放入到压缩包当中// key 文件名称, value 文件地址HashMap<String, String> maps = new HashMap<>();maps.put("ts_service_orchestration.json", orcPath);ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));for (Map.Entry<String, String> entry : maps.entrySet()) {File newFile = new File(entry.getValue());fileInputStream = new FileInputStream(newFile);out.putNextEntry(new ZipEntry(entry.getKey()));while ((len = fileInputStream.read(b)) > 0){out.write(b, 0, len);}out.closeEntry();fileInputStream.close();}out.close();// delete jsonFilenew File(orcPath).delete();}catch (Exception e){e.printStackTrace();}}public static void tempFile(String filePath, String jsonData) throws IOException {// 保证创建一个新文件File file = new File(filePath);if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录file.getParentFile().mkdirs();}if (file.exists()) { // 如果已存在,删除旧文件file.delete();}file.createNewFile();// 格式化json字符串jsonData = JsonUtil.formatJson(jsonData);// 将格式化后的字符串写入文件Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");write.write(jsonData);write.flush();write.close();}

2、读取json文件

	public static void readJson(){try {// 转为压缩文件流ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream("D:\\doc\\压缩包.zip"), Charset.forName("gbk"));ZipEntry zipEntry = null;while ((zipEntry = zipInputStream.getNextEntry()) != null) {if (!zipEntry.isDirectory() && zipEntry.getName().endsWith(".json")) {// Read the Excel file from the Zip entryByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] buffer = new byte[4096];int length = -1;while ((length = zipInputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, length);}outputStream.close();tempReadFile(outputStream);zipInputStream.closeEntry();}}zipInputStream.close();} catch (IOException e) {e.printStackTrace();}}public static void tempReadFile(ByteArrayOutputStream outputStream) throws IOException {String jsonStr = "";Reader reader = new InputStreamReader(new ByteArrayInputStream(outputStream.toByteArray()),"utf-8");int ch = 0;StringBuffer sb = new StringBuffer();while ((ch = reader.read()) != -1) {sb.append((char) ch);}reader.close();jsonStr = sb.toString();// 这里注意,如果是json文件当中是对象集合的话可以这样写,但是如果是对象的话,这样转换是会出错的。JSONArray array = JSONObject.parseArray(jsonStr);for (Object o : array) {JSONObject jsonObject = (JSONObject)o;System.out.println(jsonObject);}System.out.println("=================================================================");}

相关文章:

Java 生成和读取JSON文件

下面的demo当中 &#xff0c;是将json文件放到了zip包当中。如果不需要&#xff0c;可以拿掉。 1、生成对象JSON文件 public static void crateJson() {try {String orcPath "D:\\doc\\ts_service_orchestration.json";// 对象集合或者对象都可以List<DataPO>…...

k8s-----26、细粒度权限管理 RBAC

0、导读 每一个用户对API资源进行操作都需要通经过以下三个步骤: 第一步:对客户端访问进行认证操作,确认是否具有访问k8s权限(也就是通过serviceaccount) token(共享秘钥) SSL(双向SSL认证) …通过任何一个认证即表示认证通过,进入下一步第二步:授权检查,确认是否对资源…...

【Unity ShaderGraph】| 制作一个 高级流体水球效果

前言 【Unity ShaderGraph】| 快速制作一个 流体水球效果一、效果展示二、简易流体水球效果三、进阶流体水球效果四、应用实例 前言 本文将使用ShaderGraph制作一个 高级流体水球 &#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xf…...

日常软件游戏丢失msvcp120dll怎么修复?分享5个修复方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120dll丢失”。那么&#xff0c;究竟什么是msvcp120dll文件&#xff1f;当它丢失时&#xff0c;我们会遇到哪些问题呢&#xff1f;本文将从以下几个方面进行详细阐述。 msvcp120dll是…...

自动驾驶之—2D到3D升维

前言&#xff1a; 最近在学习自动驾驶方向的东西&#xff0c;简单整理一些学习笔记&#xff0c;学习过程中发现宝藏up 手写AI 3D卷积 3D卷积的作用&#xff1a;对于2DCNN&#xff0c;我们知道可以很好的处理单张图片中的信息&#xff0c;但是其对于视频这种由多帧图像组成的图…...

ubuntu18.4(后改为20.4)部署chatglm2并进行基于 P-Tuning v2 的微调

下载驱动 NVIDIA显卡驱动官方下载地址 下载好对应驱动并放在某个目录下&#xff0c; 在Linux系统中安装NVIDIA显卡驱动前,建议先卸载Linux系统自带的显卡驱动nouveau。 禁用nouveau 首先&#xff0c;编辑黑名单配置。 vim /etc/modprobe.d/blacklist.conf 在文件的最后添加…...

爬虫-获取数据xpath

安装lxml pip3 install lxml基本用法 import reauests from lxml import etree url = xxx res = reuests.get(url).text html = etree.HTML(res) # 获取所有div标签 xpath = //div print(html.xpath(xpath)) #获取id=xx的div标签下的class=yy的span标签 xpath = //div[@id=&quo…...

SpringBoot中使用JdbcTemplate访问Oracle数据库

Oracle相信大家都不陌生吧&#xff0c;一个大型的数据库&#xff0c;至于数据库&#xff0c;我相信各位都比较熟悉了&#xff0c;一个软件系统&#xff0c;不论是我们常做的App、小程序、还是传统的web站点&#xff0c;我们都有用户的信息&#xff0c;相关业务的数据&#xff0…...

【Linux】权限完结

个人主页点击直达&#xff1a;小白不是程序媛 系列专栏&#xff1a;Linux被操作记 目录 前言 chown指令 chgrp指令 文件类型 file指令 目录的权限 粘滞位 umask指令 权限总结 前言 上篇文章我们说到对于一个文件所属者和所属组都是同一个人时&#xff0c;使用所属者身…...

计算机网络-应用层(3)

一、FTP 文件传输协议 (File Transfer Protocol,FTP) 简称为“文传协 议”,用于在Internet上控制文件的双向传输。 FTP 客户上传文 件时&#xff0c;通过服务器20号端口建立的连接是建立在TCP 之上的数 据连接&#xff0c;通过服务器21号端口建立的连接是建立在TCP 之上的控制连…...

虎去兔来(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...

docker基础镜像定制

docker基础镜像定制 1 简言2.准备软件源文件sources.list3.制作基础镜像3.1 编写Dockerfile命令3.2 制作基础镜像k8sbase1.03.3 测试基础镜像1 简言 官方基础镜像一般自带的linux命令是比较少,tcpdump、telnet登等命令是没有的,这时,定制一套适合自己的基础镜像是必要的,在…...

解决git action定时任务执行失败的方法

为了测试git action定时任务是否有效&#xff0c;你可能选择一个最近的时间测试&#xff0c; 但是发现怎么也触发不了&#xff0c;是不是觉得很苦恼。但是同样的时间&#xff0c;在第二天的定时任务又能成功运行。 这是什么原因&#xff1f; 原因就在上图&#xff0c;git act…...

Node编写重置用户密码接口

目录 前言 定义路由和处理函数 验证表单数据 实现重置密码功能 前言 接前面文章&#xff0c;本文介绍如何编写重置用户密码接口 定义路由和处理函数 路由 // 重置密码的路由 router.post(/updatepwd, userinfo_handler.updatePassword) 处理函数 exports.updatePasswo…...

Day13力扣打卡

打卡记录 奖励最顶尖的 k 名学生(哈希表排序) 用哈希表对所有的positive与negative词条进行映射&#xff0c;然后遍历求解。tip&#xff1a;常用的分割字符串的操作&#xff1a;1.stringstream配合getline() [格式buf, string, char]2.string.find()[find未找到目标会返回npos…...

独立开发者知识贴

有一个github仓库&#xff0c;叫做独立开发变现周刊&#xff0c;很不错&#xff0c;作者能从21年能坚持更新到现在&#xff0c;我很佩服。 它里边有很多独立开发者成功的作品案例&#xff0c;我对这些很感兴趣。 在阅读时&#xff0c;我会问自己以下几个问题&#xff1a; 解…...

软考系列(系统架构师)- 2009年系统架构师软考案例分析考点

试题一 软件架构设计 【问题1】&#xff08;9分&#xff09; 软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举六种不同的软件质量属性名称并解释其含义。 常见的软件质量属性有多种&#xff0c;例如性能&#xff08;Performance)、可用性&#xff08;Ava…...

C语言每日一题(21)删除排序数组中的重复项

力扣 26.删除排序数组中的重复项 题目描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考…...

如何快速解决d3dcompiler_43.dll缺失问题?五种方法快速解决

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“D3DCompiler_43.dll缺失”。这个错误通常会导致游戏、应用程序或系统无法正常运行。为了解决这个问题&#xff0c;我们需要采取一些修复方案来恢复缺失的文件。本文将介绍五个修复D3DCompi…...

mongodb数据迁移的方法

这个方法只能将数据从一个mongo数据库转移到另一个mongo数据库 这个命令可以备份mongo数据&#xff08;mongo数据库中的数据备份转换为文件&#xff09; mongodump --host HOST --port PORT --username USERNAME --password PASSWORD --db DB -c COLLECTION --out OUT这个命令…...

MySQL 子查询优化:从慢查询到飞起的实战之路

开场白 说起 MySQL 子查询优化&#xff0c;这事儿我还真踩过大坑。有一次上线一个报表功能&#xff0c;SQL 里套了两层子查询&#xff0c;测试环境跑得挺快&#xff0c;上了生产直接把数据库干到 CPU 100%&#xff0c;整个系统卡了十分钟。后来 DBA 找过来&#xff0c;一看执行…...

iKuai系统安装踩坑实录:从‘找不到启动项’到成功引导,我的EFI/U盘避坑全记录

iKuai系统安装避坑指南&#xff1a;从EFI配置到BIOS设置的深度解析第一次尝试在x86设备上安装iKuai软路由系统时&#xff0c;我遇到了一个令人抓狂的问题——制作好的U盘启动盘竟然无法被电脑识别。屏幕上冷冰冰的"No bootable device found"提示&#xff0c;让原本简…...

不确定性量化神经网络:从海平面预测到状态依赖可预测性物理机制挖掘

1. 项目概述&#xff1a;用不确定性量化神经网络“透视”海平面预测的奥秘在气候与海洋研究的前沿&#xff0c;预测未来几天到几个月内的海平面变化&#xff0c;一直是个让人又爱又恨的难题。爱的是&#xff0c;准确的预测能直接服务于沿海城市的防洪预警、港口运营和生态保护&…...

Godot中文离线文档本地构建全指南

1. 为什么你下载的“Godot中文文档”总在关键时刻打不开&#xff1f;我第一次在客户现场调试一个嵌入式Godot游戏时&#xff0c;笔记本突然断网——不是Wi-Fi掉线&#xff0c;是整个厂区网络策略限制&#xff0c;所有外网HTTP/HTTPS请求被拦截。当时我正卡在一个Node2D.set_glo…...

ESXi 6.7性能调优第一步:别急着装系统,先搞定主板BIOS里这4个关键设置

ESXi 6.7性能调优实战&#xff1a;BIOS层四大核心参数深度解析当你以为ESXi的性能瓶颈在于内存分配或存储配置时&#xff0c;可能忽略了最底层的硬件虚拟化支持。我曾亲眼见证一个中型企业的vSphere集群在调整BIOS参数后&#xff0c;虚拟机密度提升了40%&#xff0c;而硬件配置…...

[智能体-42]:深度解读:Python 免编译 + 动态执行,支撑智能体落地大模型决策

一、先厘清核心概念无需编译执行&#xff1a;Python 属于解释型语言&#xff0c;区别于 C/C、Java 编译型语言。编译型语言必须先将源码整体编译成机器码 / 字节码文件&#xff0c;才能运行&#xff1b;Python 无需手动编译&#xff0c;源码可逐行边解析边执行&#xff0c;即时…...

黄仁勋放话:AI基建要烧掉4万亿美元 谁买单?

最近&#xff0c;英伟达掌门人黄仁勋抛出了一句让人瞠目结舌的预测——未来几年&#xff0c;全球在人工智能基础设施上的投入&#xff0c;可能达到4万亿美元。这个数字不是小数目&#xff0c;它相当于某些国家一年的国内生产总值总和。这笔账怎么算的&#xff1f;黄仁勋在达沃斯…...

PS5 NOR修改器终极指南:简单三步修复你的游戏主机

PS5 NOR修改器终极指南&#xff1a;简单三步修复你的游戏主机 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corrupt, or if you have a disc edition…...

2026年论文党必备:盘点2026年倾心之选的的降AIGC网站

轻松降低论文AI率在2026年已不再是天方夜谭。以下是2026年最炸裂、实测效果显著的降AIGC网站神器&#xff0c;覆盖AI痕迹消除、文本改写润色、降重优化、学术合规检测四大核心场景&#xff0c;帮你稳妥搞定毕业论文。 一、全流程王者&#xff1a;一站式搞定论文全链路 这类工具…...

Kubernetes DaemonSet深度解析:管理集群守护进程的最佳实践

Kubernetes DaemonSet深度解析&#xff1a;管理集群守护进程的最佳实践 一、DaemonSet概述 DaemonSet 是Kubernetes中用于在集群的每个节点上运行一个Pod副本的控制器。它确保所有节点&#xff08;或满足特定条件的节点&#xff09;都运行该Pod的一个实例。 1.1 DaemonSet应…...