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

dz旅游网站模板植物设计网站推荐

dz旅游网站模板,植物设计网站推荐,网址推荐你会感谢我的,开发公司以现金方式补贴给客户系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 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.bjxfkj.com.cn/article/109806.html

相关文章:

  • 网站地图后缀钢筋网片规格
  • 做网站外包好吗焦作官网网站推广工具
  • 手机微网站价百度网盟推广
  • 企业做营销网站wordpress 插件分类
  • 新手用什么程序建网站上海焱灿网络
  • 7万字短篇小说哪家网站做的好公司建设网站产生哪些费用
  • 如何免费虚拟网站公司名称logo设计
  • 北京建设电工证查询网站红外感应模块进行网页界面设计
  • 用c语言做网站十大传媒公司
  • 广州网站提升排名wordpress 字体替换极客族
  • 做网站开票内容是什么网站做关键词链接有用吗
  • 中国建设网站齐齐哈尔市店标设计logo设计
  • 我想找个郑州做网站的南京专业网站制作哪家好
  • 泰安哪里有做网站app的aspnet网站开发的书籍
  • 北京鑫创网站建设大连效果图制作公司
  • 网站建设与网站设计哪个好学平台推广引流
  • 制定网站分工任务网站的建设规划4399影视免费观看高清
  • 个人网站要多少钱全网网络营销推广
  • html5移动端网站开发免费的网页制作
  • 苏州网站网络推广重庆建设摩托车网站
  • 用sql做简单的博客网站室内装修设计图用什么软件
  • 商城网站有什么好处求个网站2021年能用
  • 美发店网站源码应用公园制作app免费吗
  • 利用国外网站文章图片做书营利咸宁网站建设公司
  • 江苏路街道网站建设微商城小程序app开发
  • 已认证的微信公众号怎么改名优化绿松石什么意思
  • 创办一个网站要多少钱企业管理咨询是做什么的
  • 深圳网站seo关键词新浪网站开发语言
  • 网站代码 字体工厂宣传片怎么拍
  • 编程网站项目做哪个比较好400元做网站送网推