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

手机微信网站教育培训机构加盟十大排名

手机微信网站,教育培训机构加盟十大排名,广州地铁18号线最新线路图,企业网站建设方案范本系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、获取绝对路径再读取文件(jar包里会获取不到)
  • 二、直接获取文件流(jar包可用)
    • 1.ClassLoader对象的getResourceAsStream()
    • 2.Class对象的getResourceAsStream()
  • 三、使用封装好的类(jar包可用)
    • 1、Spring提供的ClassPathResource
    • 2、Hutool提供的ResourceUtil
  • 测试jar包中是否可用的代码


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、获取绝对路径再读取文件(jar包里会获取不到)

方法一:类加载器的getResource().getPath()获取目录路径

    /*** 方法一:使用类加载器的getResource().getPath()获取全路径再拼接文件名,最后根据文件路径获取文件流* 备注:jar包不可用,因为jar包中没有一个实际的路径存放文件** @param fileName* @return* @throws FileNotFoundException*/public BufferedReader function1(String fileName) throws FileNotFoundException {//   /Users/zunf/code/read-resource/target/classes/String path = this.getClass().getClassLoader().getResource("").getPath();//   /Users/zunf/code/read-resource/target/classes/测试.txtString filePath = path + fileName;return new BufferedReader(new FileReader(filePath));}

方法二:类加载器的getResource().getPath()获取文件路径

    /*** 方法二:使用类加载器的getResource().getPath(),传参直接获取文件路径,再根据文件路径获取文件流* 备注:jar包不可用,因为jar包中没有一个实际的路径存放文件** @param fileName* @return* @throws IOException*/public BufferedReader function2(String fileName) throws IOException {//   /Users/zunf/code/read-resource/target/classes/%e6%b5%8b%e8%af%95.txtString filePath = this.getClass().getClassLoader().getResource(fileName).getPath();//可以看到上面读取到路径的中文被URLEncoder编码了,所以需要先用URLDecoder解码一下,恢复中文filePath = URLDecoder.decode(filePath, "UTF-8");return new BufferedReader(new FileReader(filePath));}

二、直接获取文件流(jar包可用)

1.ClassLoader对象的getResourceAsStream()

    /*** 方法三:使用类加载器的getResourceAsStream(),直接获取文件流* 备注:jar包可用** @param fileName* @return* @throws IOException*/public BufferedReader function3(String fileName) throws IOException {//getResourceAsStream(fileName) 等价于getResource(fileName).openStream()InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileName);if (inputStream == null) {throw new FileNotFoundException(fileName);}return new BufferedReader(new InputStreamReader(inputStream));}

2.Class对象的getResourceAsStream()

ClassLoader 的getResource()是从类路径的根路径查找的,所以不加“/”也可以
Class 的getResource()是从当前类所在的包路径查找资源,所以如果不加“/”表示去根路径查找的话,是找不到的

    /*** 方法四:使用Class对象的getResourceAsStream()获取文件流* 备注:jar包可用** @param fileName* @return* @throws IOException*/public BufferedReader function4(String fileName) throws IOException {//getResourceAsStream(fileName) 等价于getResource(fileName).openStream()InputStream inputStream = this.getClass().getResourceAsStream("/" + fileName);if (inputStream == null) {throw new FileNotFoundException(fileName);}return new BufferedReader(new InputStreamReader(inputStream));}

三、使用封装好的类(jar包可用)

1、Spring提供的ClassPathResource

    /*** 方法五:使用Spring提供的ClassPathResource获取* 备注:jar包可用** @param fileName* @return* @throws IOException*/public BufferedReader function5(String fileName) throws IOException {ClassPathResource classPathResource = new ClassPathResource(fileName);InputStream inputStream = classPathResource.getInputStream();return new BufferedReader(new InputStreamReader(inputStream));}

2、Hutool提供的ResourceUtil

    /*** 方法六:使用Hutool的ResourceUtil* 备注:jar包可用** @param fileName* @return* @throws IOException*/public BufferedReader function6(String fileName) throws IOException {List<URL> resources = ResourceUtil.getResources(fileName);URL resource = resources.get(0);return new BufferedReader(new InputStreamReader(resource.openStream()));}

测试jar包中是否可用的代码

   //Jar包启动时根据传入的不同funcation值来选择调用哪个方法测试@Value("${function}")private int function;    @GetMapping("/test")public String test() throws IOException {//需要在resource里读取的文件String fileName = "测试.txt";//调用方法System.out.println("调用function" + function);BufferedReader bufferedReader = null;switch (function) {case 1:bufferedReader = function1(fileName);break;case 2:bufferedReader = function2(fileName);break;case 3:bufferedReader = function3(fileName);break;case 4:bufferedReader = function4(fileName);break;case 5:bufferedReader = function5(fileName);break;case 6:bufferedReader = function6(fileName);break;default:}//读取并输出StringBuilder sb = new StringBuilder();String line = null;while ((line = bufferedReader.readLine()) != null) {sb.append(line).append("\n");}System.out.println(sb);return sb.toString();}

到此这篇关于SpringBoot项目中读取resource目录下的文件六种方法的文章就介绍到这了

http://www.hrbkazy.com/news/7588.html

相关文章:

  • 磁力棒沈阳关键词seo
  • 邢台网络运营中心处理中心seo网站推广是什么意思
  • 网页设计与网站建设基础百度竞价点击一次多少钱
  • 滕州外贸网站建设百度热榜实时热点
  • 网站开发公司简介怎么写网站seo外链平台
  • 做赛事预测网站百度推广网址是多少
  • 代理网站系统兰州疫情最新情况
  • 虎门有没有做网站公司买淘宝店铺多少钱一个
  • 高端大气企业网站成功的营销案例及分析
  • 网站开发工程师和前端怎样才能上百度
  • 想给孩子找点题做 都有什么网站百度信息流广告代理
  • dede网站打不开北京网站优化快速排名
  • 福田附近公司做网站建设哪家效益快百度流量统计
  • 小熊代刷推广网站下拉框关键词软件
  • 我的网站百度搜不到深圳关键词自动排名
  • 牛商网网站建设廊坊自动seo
  • 进网站后台显示空白千峰培训出来好就业吗
  • 邢台做网站推广的公司企业网站seo方案案例
  • 滕州建网站湖南网站建设推广
  • 阜宁县住房与城乡建设局网站南宁seo服务优化
  • 网站建设 inurl:.bbs建立网站需要什么
  • 做网站的每天打电话咋办饥饿营销的十大案例
  • 哪个网站可以做行测题目品牌营销推广方案
  • 求一个自己做的网站链接开个网站平台要多少钱
  • 纯静态网站做优化有什么影响小程序制作费用一览表
  • 南通做网站厉害的近期的时事热点或新闻事件
  • 如果评价网站做的好不好舆情报告范文
  • 江门seo网站排名谷歌优化怎么做
  • 东台网站建设深圳门户网站
  • 百度链接插件 wordpress推广关键词如何优化