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( ...
随机推荐
- Leetcode 371.两整数之和 By Python
不使用运算符 + 和 - ,计算两整数 a .b 之和. 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = 3 输出: 1 思路 比如\(5+6=1 ...
- 自学Linux Shell13.1-命令行参数
点击返回 自学Linux命令行与Shell脚本之路 Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法: 命令行参数(添加在名利后面的数据) 命令行选项(可修改命令行为的单个 ...
- BZOJ 193题纪念
- 洛谷 P2774 方格取数问题 解题报告
P2774 方格取数问题 题目背景 none! 题目描述 在一个有 \(m*n\) 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大. ...
- Linux监控--CPU、内存、I/O
CPU top命令能够实时监控系统的运行状态,并且可以按照CPU.内存和执行时间进行排序,同时top命令还可以通过交互式命令进行设定显示,通过top命令可以查看即时活跃的进行. 内存 free命令可以 ...
- JDK源码分析(6)ConcurrentHashMap
JDK版本 ConcurrentHashMap源码分析 table:默认为null,初始化发生在第一次插入操作,默认大小为16的数组,用来存储Node节点数据,扩容时大小总是2的幂次方. nextTa ...
- 超越LLMNR /NBNS欺骗 - 利用Active Directory集成的DNS
利用名称解析协议中的缺陷进行内网渗透是执行中间人(MITM)攻击的常用技术.有两个特别容易受到攻击的名称解析协议分别是链路本地多播名称解析(LLMNR)和NetBIOS名称服务(NBNS).攻击者可以 ...
- docker的网络模式
记性不好,回顾一下.按照惯例,直接看官文. Docker's networking subsystem is pluggable, using drivers. Several drivers exi ...
- 洛谷 P1880 [NOI1995] 石子合并(区间DP)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 这道题是石子合并问题稍微升级版 这道题和经典石子合并问题的不同在于,经典的石子合 ...
- java8中的stream().filter()的使用和Optional()
转: https://www.cnblogs.com/yimiyan/p/5992440.html Optional: https://www.cnblogs.com/zhangboyu/p/7580 ...