Springboot获取resources中的文件

在这里插入图片描述

1.Springboot以文件的形式获取resources中的文件

import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
import org.springframework.util.ResourceUtils;
import java.io.*;
 
    public static void getResourcesFile() {
        File file = null;
        try {
            file = ResourceUtils.getFile("classpath:cityInfo.json");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        JsonParser parse = new JsonParser();  //创建json解析器
        try {
            JsonObject json = (JsonObject) parse.parse(new FileReader(file));  //创建jsonObject对象
            System.out.println(json.toString());
        } catch (JsonIOException e) {
            e.printStackTrace();
        } catch (JsonSyntaxException e) {
            e.printStackTrace();
        }catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

2.Springboot以流的形式获取resources中的文件

注:当java项目打成jar包,则无法以文件的形式直接获取resources中的文件,此时以流的形式获取

import java.io.*;
import org.springframework.core.io.ClassPathResource;
 
    public static void getResourcesByStream() {
        String str = "";
        ClassPathResource resource = new ClassPathResource("cityInfo.json");
        try {
            InputStream inputStream= resource.getInputStream();
            //将流转为字符串
            str = FileUtil.streamToString(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(str);
    }

转至:https://blog.csdn.net/xyy1028/article/details/87785592

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729327.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程信号2——阻塞信号,捕捉信号

1.阻塞信号 1.1. 信号其他相关常见概念 在开始内容之前,先介绍一些信号的专业名词: 实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)&#…

Swift Combine — zip和combineLatest的理解与使用

Publisher 上还有一些其他的操作,比如 zip 和 combineLatest,能让我们在时序上对控制多个 Publisher 的结果进行类似 and 和 or 的合并,它们在构建复杂 Publisher 逻辑时也十分有用。 zip Publisher 中的 zip 和 Sequence 的 zip 相类似&am…

【备考指南】CDA Level Ⅰ 最全备考攻略

很多考生朋友在报名前后,一直不知道需要怎么备考,这里给大家盘点一下最全的备考攻略,希望对你有用: 1、需要准备好之后再报名吗? 不需要,CDA认证考试是报名后自行预约考试的,您可以先报名同时…

qml:一个基础的界面设计

文章目录 文章说明效果图重要代码说明组件矩形卡片窗口最大化后组件全部居中菜单栏Repeater实现重复8行图片加载直接加载图片文本转图片FluentUI中可供选择的图标 文章说明 qt6.5.3 qml写的一个界面配置设计软件,目前不含任何c代码,纯qml。windoms风格的…

WebStorm 配置 PlantUML

1. 安装 PlantUML 插件 在 WebStorm 插件市场搜索 PlantUML Integration 并安装,重启 WebStorm 使插件生效。 2. 安装 Graphviz PlantUML 需要 Graphviz 来生成图形。使用 Homebrew 安装 Graphviz: 打开终端(Terminal)。确保你…

mac 常用工具命令集合

Iterm2 Command T:新建标签 Command W:关闭当前标签 Command ← →:在标签之间切换 Control U:清除当前行 Control A:跳转到行首 Control E:跳转到行尾 Command F:查找 Command …

数据结构5---矩阵和广义表

一、矩阵的压缩存储 特殊矩阵:矩阵中很多值相同的元素并且它们的分布有一定的规律。 稀疏矩阵:矩阵中有很多零元素。压缩存储的基本思想是: (1)为多个值相同的元素只分配一个存储空间; (2)对零元素不分配存储空间。 1、特殊矩阵的压缩存储 (1)对称矩…

云渲染可以渲染SketchUp吗?

最近有很多人在问,云渲染可以渲染sketchup吗?答案是可以的,不过只有两三家支持,大部分云渲染是还是不支持的,今天就给大家介绍国内最新支持sketchup渲染的云渲染——炫云云渲染的使用方法。 炫云云渲染目前支持sketchu…

C++开发基础之频繁使用`std::endl`可能导致性能问题

前言 你是否曾经注意过这个问题,频繁使用std::endl可能导致性能问题。在C开发中,许多开发者习惯于使用std::endl来换行输出并刷新缓冲区。然而,这种习惯性操作可能会在高频率输出场景中带来显著的性能瓶颈。接下来,我们将深入探讨…

多模态大模型时代下的文档图像智能分析与处理

0. 前言 随着人工智能技术的不断发展,尤其是深度学习技术的广泛应用,多模态数据处理和大模型训练已成为当下研究的热点之一,这些技术也为文档图像智能处理和分析领域带来了新的发展机遇。 多模态大模型时代下的文档图像智能分析与处理的研究…

怎么使用Consul当配置中心和动态刷新配置

一、背景 由于Eureka官方已经正式宣布,自2.0起不再维护该项目,如果需要使用2.x,自行承担风险。 项目之前使用的Eureka,现在不维护了则需要寻找替代方案。现在Spring Cloud官方推荐Spring Cloud Consul替换Eureka作为注册中心&…

网络协议安全:TCP/IP协议栈的安全问题和解决方案

「作者简介」:北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖Web安全、系统安全等12个知识域的一百多个知识点,持续更新。 这一章节我们需要知道TCP/IP每…

openresty(Nginx) 301重定向域名 http访问强制使用https

1 访问http 2 修改配置访问 server {listen 80;server_name example.cn;return 301 https://$server_name$request_uri;access_log /data/logs/czgzzfjgsup_access.log access;error_log /data/logs/czgzzfjg_error.log error;#location / {root /usr/local/open…

领域驱动设计(DDD)微服务架构模式总结

part1. Domain Driven Design(Strategic Design,Tactical Design) Top Down focus on business or activityy domain Ubiquitous Language:统一语言 Tactical Design Tools:战术性设计工具 Implementing Domain Driven Design(Event storming,DDD in code) DDD总结…

大模型基础——从零实现一个Transformer(4)

大模型基础——从零实现一个Transformer(1)-CSDN博客 大模型基础——从零实现一个Transformer(2)-CSDN博客 大模型基础——从零实现一个Transformer(3)-CSDN博客 一、前言 上一篇文章已经把Encoder模块的单个EncodeBlock已经实现了 本文我们继续了解Transformer中剩下的其他…

Flutter【组件】富文本组件

简介 flutter 富文本组件。 github地址: https://github.com/ThinkerJack/jac_uikit 使用方式 运行 flutter pub add jac_uikit组件文档 使用方式: HighlightedTextWidget.builder(text: "全部文案包含高亮文案测试用",highlights: [Hig…

1. zookeeper分布式协调者

zookeeper分布协调者 一、zookeeper介绍1、软件设计架构1.1 单体架构1.2 SOA架构/分布式1.3 微服务架构 二、zookeeper角色1、角色2、选举机制3、znode类型 三、zookeeper集群部署1、环境规划2、安装jdk3、安装配置zookeeper3.1 安装zookeeper3.2 编辑配置文件3.3 创建myid文件…

聊聊最近比较火的AI产品做互联网算法备案

今年AI🔥了,而且是大火,导致监管部门相继出台相关政策,需要管控下,所以互联网算法备案就自然而然重新被提出来。其实这个互联网算法备案去年就已经开始实施了,去年只有几个大厂比如BAT等互联网巨头等会去弄…

Lazada API接口——一键获取商品买家评论数据信息

一、引言 在电商领域,买家评论是商品销售中不可忽视的重要因素。它们不仅影响着潜在消费者的购买决策,还为商家提供了宝贵的客户反馈。为了满足商家和数据分析师对买家评论数据的需求,我们特别开发了一款针对Lazada平台的接口,其…

Talk|北京大学张嘉曌:NaVid - 视觉语言导航大模型

本期为TechBeat人工智能社区第602期线上Talk。 北京时间6月20日(周四)20:00,北京大学博士生—张嘉曌的Talk已经准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “NaVid - 视觉语言导航大模型”,NaVid是首个专为视觉语言导航&#xf…