web项目读取classpath下面文件心得总结
2017-09-30 00:00
323 查看
普通的web项目
普通的web项目,像用Tomcat容器,特点是压缩包随着容器的启动会解压缩成一个文件夹,项目访问的时候,实际是去访问文件夹,而不是jar或者war包这种的无论你是用获取路径的方法this.getClass().getResource("/")+fileName,获取流的方法this.getClass().getResourceAsStream(failName);,屡试不爽,都行,这种没什么可注意的,大多数项目都是这种
方便的工具类
import org.springframework.util.ResourceUtils; File file = ResourceUtils.getFile("classpath:test.txt");
或者
ClassPathResource classPathResource = new ClassPathResource("test.txt"); classPathResource.getFile(); // 获取文件 classPathResource.getInputStream(); // 获取文件流
内嵌web容器
内嵌web容器,其特点是只有一个jar文件,在容器启动后不会解压缩,项目实际访问时jar包或者war包这种最容易遇坑,最大的坑就是,用第一种方式读取,在eclipse,本地调试,完美运行,到linux环境下,就GG,你这个蛋碎啊,大骂靠,什么玩意,莫慌莫慌,你来到了我的博客,就会让你长知识的
首先用获取路径的方法this.getClass().getResource("/")+fileName,获取流的方法this.getClass().getResourceAsStream(failName);在本地运行时,绝壁能找到,你打印出来路径,没错,是咱们eclipse的工作目录,项目目录,但是在target目录下。现在给你分析为什么去到线上,就GG了,很简单,线上内嵌的工程,我们只会放一个jar文件上去,我理解是jar里面的路径是获取不到的,jar是封闭性东西吧,不像文件夹,总不能c:/home/xx.jar/file.txt,这种路径我写出来你是不是心里激起一点小浪花,别浪,稳点。所以说到这我已经吧上帝的真理告诉你了,不要告诉别人哦,这是个秘密,好,大哥我总结一点,读取jar里面的文件,我们只能用流去读取,不能用file,文件肯定要牵扯路径,jar那个路径刚刚我已经拼出来了
jar里面文件读取方式:
ClassPathResource classPathResource = new ClassPathResource("test.txt"); classPathResource.getInputStream(); // 获取文件流
相关文章推荐
- web项目读取classpath下面文件心得总结
- 浅谈web项目读取classpath路径下面的文件
- web项目读取classpath路径下面的文件
- web项目读取classpath下面文件
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- web项目中读取properties文件的方法总结
- web项目中从不同的路径读取文件
- Java在Web项目中读取properties文件
- C#web读取文件夹下面的所有文件夹和文件显示到TreeView中
- web.xml文件加载顺序 一、 1 、启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param>
- myeclipse或者eclipse中建立的web项目下面出现了.classpath、.mymedata、.project处理方式
- svn在vs2010G更新错误解决:web.csproj:error:无法读取项目文件"web.csproj"
- Web 项目 中读取专用配置文件
- Java Web项目读取属性文件
- web 项目中css文件读取不到
- 项目开发技巧(一):将Web应用打包成war文件的方法总结
- web项目中读取web-inf下的properties文件
- WEB项目加载配置文件并读取配置文件
- Web应用中由JavaBuildPath(.classpath文件)引起的错误总结
- eclipse或myeclipse,web项目无法自动编译,.classpath文件原因造成的