java 读取resource下的文件

2023-11-19

一、普通main代码里使用

1.假设有如下结构的代码

在这里插入图片描述

(1)、main方法里复制resource下的文件

import org.apache.commons.io.FileUtils;
import java.io.*;

public class App {
    public static void main(String[] args) throws Exception {
	        //从resources下读取diff2html.min.css为输入流
            InputStream inputStream = App.class.getClassLoader().getResourceAsStream("diff2html.min.css");
            //利用Apache Commons IO库把输入流写入到D:\myExcel\jsAndCss\diff2html.min.css ,如果文件不存在会自动创建
            FileUtils.copyInputStreamToFile(inputStream, new File("D:\\myExcel\\jsAndCss\\diff2html.min.css"));
	}
}

可以把代码和resource目录打成一个jar包也同样适用。运行jar包的时候就会把jar包里resource下的diff2html.min.css文件复制到D:\myExcel\jsAndCss\diff2html.min.css

(2)、main方法里读取resource下的文件

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class App {
    public static void main(String[] args) throws Exception {
	    List<String> list = new ArrayList<>();
		//从resources下读取diff2html.min.css为输入流
        InputStream inputStream = App.class.getClassLoader().getResourceAsStream("diff2html.min.css");
        BufferedInputStream buf = new BufferedInputStream(inputStream); 
        int len = 0;
        byte[] bys = new byte[1024];
        while ((len = buf.read(bys)) != -1) {
            //diff2html.min.css里每一行的内容添加到list里
			String row = new String(bys, 0, len, StandardCharsets.UTF_8);
			System.out.println(row);
            list.add(row);
        }
        inputStream.close(); 
        buf.close();
    }
}

2.假设有如下结构的代码

在这里插入图片描述

import com.haitangxt.utils.ReadSource;

public class App {
    public static void main(String[] args) throws Exception {
            ReadSource readSource = new ReadSource();
        	readSource.copyfile("D:\\myExcel\\jsAndCss");
      }
 }
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class ReadSource {
    public  void copyfile(String jsCssPath) {
        try {
        	//从resources下的test/diff2html.min.css读取为输入流
            InputStream inputStream = ReadSource.class.getClassLoader().getResourceAsStream("test/diff2html.min.css");
            //利用Apache Commons IO库把输入流写入到D:\myExcel\jsAndCss\diff2html.min.css ,如果文件不存在会自动创建
            FileUtils.copyInputStreamToFile(inputStream, new File(jsCssPath + "\\diff2html.min.css"));
        } catch (IOException e) {
        	e.printStackTrace();
        }
    }
}

二、对于springboot项目读取resource下的资源文件

在这里插入图片描述


@Component
public class WorldAddressUtils {

 public JSONObject getAllCountrys() {
        try (
                //读取文件为字节流
                InputStream file = this.getClass().getResourceAsStream("/resourcesfile/worldAddress.txt");
                //字节流转化为字符流,以UTF-8读取防止中文乱码
                InputStreamReader in = new InputStreamReader(file, "UTF-8");
                //加入到缓存
                BufferedReader buf = new BufferedReader(in);
        ) {
            String str = "";
            while ((str = buf.readLine()) != null) {
				System.out.println(str);
			}
		}catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

java 读取resource下的文件 的相关文章

  • 使用 Intellij Idea 和 gradle 在应用程序引擎上调试 localhost

    我正在使用 IntelliJ 社区添加并使用 Gradle 构建应用程序引擎标准环境应用程序 在迁移到 IntelliJ 和端点框架之前 我使用的是 Android Studio 我无法调试我的本地主机 我添加了 jvmFlags 如下所述
  • 在java中轮询Http服务器(重复发送http get请求)

    当对其进行 REST 调用时 我的 Web 服务器会发送一些信息 我想不断轮询该服务器 间隔5秒后重复发送HTTP GET请求 以检查返回的信息是否有任何变化 做到这一点最有效的方法是什么 您能提供一些代码示例吗 请注意 我只想开发客户端代
  • java中监视目录变化

    我正在使用 WatchService 来监视目录中的更改 特别是目录中新文件的创建 下面是我的代码 package watcher import java nio file import static java nio file Stand
  • 有没有创建 Cron 表达式的 Java 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个 Java 代码来根据用户输入创建一个 cron 表达式 用户输入是时间 频率和执行次数 只需从评论中添加 自己创建 即可
  • java.lang.ClassNotFoundException:javax.mail.MessagingException

    我想使用 eclipse 将电子邮件从我的 gmail 帐户发送到另一个邮件帐户 我使用 apache tomcat 7 0 34 作为我的 Web 服务器 并使用端口 8080 作为 apache 服务器 HTTP 1 1 并使用 JRE
  • Jframe 内有 2 个 Jdialogs 的 setModal 问题

    当我设置第一个选项时 我遇到了问题JDialog模态 第二个非模态 这是我正在尝试实现的功能 单击 测试对话框 按钮 一个JDialog有名字自定义对话框 主要的将会打开 如果单击 是 选项自定义对话框主 其他JDialog named 自
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • 子类构造函数(JAVA)中的重写函数[重复]

    这个问题在这里已经有答案了 为什么在派生类构造函数中调用超类构造函数时 id 0 当创建子对象时 什么时候在堆中为该对象分配内存 在基类构造函数运行之后还是之前 class Parent int id 10 Parent meth void
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于

随机推荐

  • java springboot实现手机短信发送

    以下是一个使用Spring Boot实现手机短信发送的示例 首先添加pom依赖 需要引入阿里云的短信SDK和Spring Boot的web依赖
  • 【Linux】fork()

    目录 1 fork是什么 2 fork复制原理 3 逻辑地址与物理地址 4 计算fork 输出次数 1 fork是什么 linux下创建新进程的系统调用的是fork 其定义如下 include
  • 蓝桥杯获奖比例java_2019年第十届蓝桥杯省赛总结(JavaA组)

    update3 28 省一rank4 莫名进了国赛好神奇 记yzm10第一次体验A组 纯粹瞎水 早闻山东的JavaA组神仙打架 进国赛都成了奢望 往年只有五个名额 因此抱着做分母的心态来为学弟学妹试水 来到考场发现同组中光认识的大佬就不止五
  • Glide图片加载回调监听

    前两篇文章从源码的角度对Glide的加载流程进行了分析 这篇文章将对Glide的回调进行总结 1 方法一 设置图片中监听 方法一使用的是SimpleTarget类 他继承自BaseTarget 需要重写onResourceReady方法 o
  • 观点

    原文地址 https www sohu com a 315434322 672569 作者 中国工商银行业务研发中心 郝毅 霍嘉 肖烨 金石乔 本文笔者着重介绍了金融行业软件自动化测试的相关实践与思考 近两年来 多家金融机构和专业测试组织开
  • 超级完整 的 Maven 讲解 以及私服搭建

    第一章 Maven 简介 1 1 Maven 概述 Maven 是一款基于 Java 平台的项目管理和整合工具 它将项目的开发和管理过程抽象成一个项目对象模型 POM 开发人员只需要做一些简单的配置 Maven 就可以自动完成项目的编译 测
  • LLVM IR入门指南(7)——异常处理

    在这篇文章中 我主要介绍的是LLVM IR中的异常处理的方法 主要的参考文献是Exception Handling in LLVM 异常处理的要求 异常处理在许多高级语言中都是很常见的 在诸多语言的异常处理的方法中 try catch块的方
  • 什么是反向代理服务器

    我们常会看到 反向代理服务器 这个名词 例如常看到文章上说 nginx 是一个反向代理服务器 varnish 是一个反向代理服务器 下面就了解下这个概念 含义 反向代理服务器 有两个概念 一是 代理服务器 二是 反向 代理服务器 比较好理解
  • 【日记】转行驱动

    从今天开始换到驱动组了 完成手头上的应用任务就彻底挥别应用 Unity再见
  • apache httpclient 连接池 工具_HttpClient连接池的一些思考

    前言 使用apache的httpclient进行http的交互处理已经很长时间了 而httpclient实例则使用了http连接池 想必大家也没有关心过连接池的管理 事实上 通过分析httpclient源码 发现它很优雅地隐藏了所有的连接池
  • 汇编语言mov al,0c5h,用汇编语言编程

    匿名用户 1级 2008 10 30 回答 写一下简单的算法吧 先提供一个简单的画点子程序 在屏幕显示一点或一像素子程序 输入参数 BX 行地址 0 479 SI 列地址 0 639 DL 颜色 0 15 640 480显示模式 DOT p
  • unity数学函数mathf.PinPong的实现原理

    mathf这个库十分强大 基本上封装了 游戏数学方面的函数 先介绍一个Mathf pingpong 官方api Mathf PingPong 乒乓 static function PingPong t float length float
  • 《高效能程序员的修炼》目录及部分精彩章节

    高效能程序员的修炼 本书已上市 各大书店均有销售 谢谢支持 目 录 1 入门须知 1 1 你想当一个程序员 1 2 程序员的八种境界 1 3 如何培养写作习惯 2 把一堆烂事搞定的艺术 2 1 学海无边 2 2 磨刀不误砍柴工 2 3 一路
  • 深入探索透视纹理映射(下)

    在上一篇文章中 我们探讨了学习透视纹理映射所需要的基础知识 我们知道了顶点在通过透视投影变换之后 是如何一步一步通过流水线进入屏幕空间的 也知道了一个非常简单的三角形扫描线转换算法 以及通过线性插值实现的仿射纹理映射 尽管我们使用的这个流程
  • 图片自动填充单元格_Excel合并单元格后进行快编号填充,你还为这个操作苦恼吗?...

    我们在工作中常常会遇到这样的情况 经常需要对某些行进行合并 但是 这个时候可能就会遇到一个问题 合并了行以后如何进行自动序号填充呢 使用Excel自带的向下拉填充序列的方式是不能正确填充的 今天 给大家介绍一种能够对合并单元格进行序号填充的
  • Clion中单行注释、多行注释及取消注释快捷键示例

    添加注释 单行注释 光标定位到指定代码行 Ctrl 多行注释 光标选定多行代码 Ctrl shift 取消注释 取消注释与添加注释快捷键相同 单行注释 光标定位到指定代码行 Ctrl 多行注释 光标定位到多行注释中 或选定全部被注释的内容
  • feignclient发送get请求,传递参数为对象。

    feignclient发送get请求 传递参数为对象 此时不能使用在地址栏传递参数的方式 需要将参数放到请求体中 第一步 修改application yml中配置feign发送请求使用apache httpclient 而不是默认的jdk
  • 做什么副业比较赚钱,这五个项目现在入行可能比上班挣得还多

    还有2个月不到的时间 2022就要过去了 这一年太魔幻了 而普通人的生活也的确太难了 这一年 各行各业都在萎缩 制造业急剧萎缩 要么不能静态生产 要么生产了就送不出去 因为可能是疫区 也可能是收货地 这样老板和员工都赚不到钱 中小商户和商铺
  • 我们无法设置移动热点_Win10 校园拨号连接情况下开热点

    win10校园网下开启热点 本段文字用以解决win10下无法建立移动热点 错误提示为 我们无法设置移动热点 因为你的电脑未建立以太网 WIFI或手机网络连接 这个问题可能出现在拨号上网连接的设备上 这也就是说我们的电脑现在无法识别出我们所用
  • java 读取resource下的文件

    目录 一 普通main代码里使用 1 假设有如下结构的代码 1 main方法里复制resource下的文件 2 main方法里读取resource下的文件 2 假设有如下结构的代码 二 对于springboot项目读取resource下的资