Java获取资源路径——(八)
获取文件资源有两种方式:
第一种是:
获取Java项目根目录开始制定文件夹下指定文件,不用类加载器(目录开始要加/)
// 获取工程路径
System.out.println(System.getProperty("user.dir"));
// E:\EclipseWorkspace\AllTest // 获取工程路径下的文件
String path = System.getProperty("user.dir") + "\\test.txt";
System.out.println(path);
// E:\EclipseWorkspace\AllTest\test.txt // 获取工程指定文件夹下的文件(第一个目录加/)
String path1 = System.getProperty("user.dir") + "\\src\\txtFile\\test.txt";
System.out.println(path1);
// E:\EclipseWorkspace\AllTest\src\txtFile\test.txt
第二种是:
通过类加载器获取:(path为相对ClassPath的路径,从ClassPath根下获取,不能以“/”开头)。
// 获取classpath路径
System.out.println(ClassLoaderTest.class.getClassLoader().getResource(""));
// file:/E:/EclipseWorkspace/AllTest/bin/ // 获取classpath路径下txtFile文件夹指定内容(第一个目录不加/)
String path1 = ClassLoaderTest.class.getClassLoader().getResource("txtFile/test.txt").getPath();
System.out.println(path1);
// /E:/EclipseWorkspace/AllTest/bin/txtFile/test.txt // 获取classpath路径下指定内容
String path2 = ClassLoaderTest.class.getClassLoader().getResource("test.txt").getPath();
System.out.println(path2);
// /E:/EclipseWorkspace/AllTest/bin/test.txt
-----------------------------------------------------------------------测试程序--------------------------------------------------------
package Java_Test; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; import org.junit.Test; /**
* 测试类加载器读取资源
*
* @author: qlq
* @date : 2017年8月2日上午9:19:22
*/
public class ClassLoaderTest { // Java同过类加载器读取资源路径问题
@Test
public void test1() throws IOException {
// 获取classpath路径
System.out.println(ClassLoaderTest.class.getClassLoader().getResource(""));
// file:/E:/EclipseWorkspace/AllTest/bin/ // 获取classpath路径下txtFile文件夹指定内容(第一个目录不加/)
String path1 = ClassLoaderTest.class.getClassLoader().getResource("txtFile/test.txt").getPath();
System.out.println(path1);
// /E:/EclipseWorkspace/AllTest/bin/txtFile/test.txt // 获取classpath路径下指定内容
String path2 = ClassLoaderTest.class.getClassLoader().getResource("test.txt").getPath();
System.out.println(path2);
// /E:/EclipseWorkspace/AllTest/bin/test.txt
} // 通过系统的绝对路径获取,先获取工程目录,再获取工程目录下指定的文件
@Test
public void fun2() {
// 获取工程路径
System.out.println(System.getProperty("user.dir"));
// E:\EclipseWorkspace\AllTest // 获取工程路径下的文件
String path = System.getProperty("user.dir") + "\\test.txt";
System.out.println(path);
// E:\EclipseWorkspace\AllTest\test.txt // 获取工程指定文件夹下的文件(第一个目录加/)
String path1 = System.getProperty("user.dir") + "\\src\\txtFile\\test.txt";
System.out.println(path1);
// E:\EclipseWorkspace\AllTest\src\txtFile\test.txt } // 读取src文件夹下的文件(txtFile从classpath下开始,前面无/)
@Test
public void test3() throws IOException {
// txtFile代表src下面的一个文件夹
String path = ClassLoaderTest.class.getClassLoader().getResource("txtFile/test.txt").getPath();
System.out.println(path);
// /E:/EclipseWorkspace/AllTest/bin/txtFile/test.txt
InputStream inputStream = new FileInputStream(new File(path));
int value1;
while ((value1 = inputStream.read()) != -1) { // 读取文件
System.out.print((char) value1); // www
}
} // 直接以流的形式读取获取
@Test
public void test4() throws IOException {
InputStream resourceAsStream = ClassLoaderTest.class.getClassLoader().getResourceAsStream("Java_Test/test.txt");
int value;
while ((value = resourceAsStream.read()) != -1) { // 读取文件
System.out.print((char) value);
} } }
Java获取资源路径——(八)的更多相关文章
- Java获取资源的路径
在Java中,有两种路径: 类路径 文件夹路径 使用类路径有两种方式: object.getClass().getResource()返回资源的URL MyClass.class.getResourc ...
- javaWeb项目中的路径格式 请求url地址 客户端路径 服务端路径 url-pattern 路径 获取资源路径 地址 url
javaweb项目中有很多场景的路径客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知 ...
- Eclipse获取资源路径
一.问题: 这几天做一个单机版的数据抓取项目,之前都加载了spring或者是maven 使用[this.getClass().getClassLoader().getResource("ma ...
- IDEA中获取资源路径问题
更正 以src开始,就能用相对路径了... shift+ctrl+alt+s 调出项目结构, 在Modules里,就是设置 Sources Resources Test的界面, 右面的路径就是相对路径 ...
- java获取类加载路径和项目根路径的5种方法
// 第一种:获取类加载的根路径 D:\IDEAWorkspace\hs-bluetooth-lock\src\applications\bluetooth-api\target\classes Fi ...
- Java获取资源文件
比如我们有以下目录 |--project |--src |--javaapplication |--Test.java |--file1.txt |--file2.txt |--build |--ja ...
- JAVA获取webapp路径
1.使用ServletContext获取webapp目录 在Servlet中 String path = getServletContext().getRealPath("/"); ...
- java 获取类路径
package com.jason.test; import java.io.File; import java.io.IOException; import java.net.URL; public ...
- Java获取各种路径
(1).request.getRealPath("/");//不推荐使用获取工程的根路径(2).request.getRealPath(request.getRequestURI( ...
随机推荐
- 快乐的Lambda表达式(二)
转载:http://www.cnblogs.com/jesse2013/p/happylambda-part2.html 快乐的Lambda表达式 上一篇 背后的故事之 - 快乐的Lambda表达式( ...
- 25 行 Python 代码实现人脸识别——OpenCV 技术教程
OpenCV OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python. 它使用机器学习算法在图像中搜索人的面部.对于人脸这么复杂的东西,并没有一个简单的检测能对是 ...
- 分别用postman和python做post请求接口功能测试
前几天,在做一个post请求的接口功能测试的时候,发现数据始终无法入库, 认真加仔细检查了请求的url.方式.参数,均没有问题 找到技术确认,原来是需要传json格式数据 在头信息中加上类型,body ...
- luogu4197 Peaks (kruskal重构树+主席树)
按照边权排序建出kruskal重构树,每次就变成了先找一个权值<=x的最远的祖先,然后看这个子树的第k小.离散化一下,在dfs序上做主席树即可 而且只需要建叶节点的主席树 注意输出的是第k小点的 ...
- Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...
- 关于flex布局,我大多数常用的几个点
第一类:让两个块级元素居于一行中 效果图如下 第二类:让两个块级元素居于一行的两边显示 效果图如下 第三类:让一个块级元素水平居中显示 效果图如下 第四类:让一个块级元素竖直居中显示 效果图如下 第五 ...
- quartz简单定时任务【可以处理完一个任务才开启下一个线程】【我】
maven jar project项目一个 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x ...
- 33. Search in Rotated Sorted Array & 81. Search in Rotated Sorted Array II
33. Search in Rotated Sorted Array Suppose an array sorted in ascending order is rotated at some piv ...
- 何谓SQL Server参数嗅探
大家听到"嗅探"这个词应该会觉得跟黑客肯定有关系吧,使用工具嗅探一下参数,然后截获,脱裤o(∩_∩)o . 事实上,我觉得大家太敏感了,其实这篇文章跟数据库安全没有什么关系,实际上 ...
- 决策树--信息增益,信息增益比,Geni指数的理解
决策树 是表示基于特征对实例进行分类的树形结构 从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将训练数据进行分割,使得各子数据集有一个最好的分类的过程. ...