Java 查看文件绝对路径,JAVA获取文件绝对路径的方法
本文实例讲述了JAVA获取文件绝对路径的方法。分享给大家供大家参考。具体实现方法如下:
/**
* 获取一个类的class文件所在的绝对路径。 这个类可以是JDK自身的类,也可以是用户自定义的类,或者是第三方开发包里的类。
* 只要是在本程序中可以被加载的类,都可以定位到它的class文件的绝对路径。
*
* @param cls
* 一个对象的Class属性
* @return 这个类的class文件位置的绝对路径。 如果没有这个类的定义,则返回null。
*/
private String getPathFromClass(Class cls) throws IOException {
String path = null;
if (cls == null) {
throw new NullPointerException();
}
URL url = getClassLocationURL(cls);
if (url != null) {
path = url.getPath();
if ("jar".equalsIgnoreCase(url.getProtocol())) {
try {
path = new URL(path).getPath();
}
catch (MalformedURLException e) {
}
int location = path.indexOf("!/");
if (location != -1) {
path = path.substring(0, location);
}
}
File file = new File(path.replaceAll("%20"," "));
path = file.getCanonicalPath();
}
return path;
}
/**
* 获取类的class文件位置的URL。这个方法是本类最基础的方法,供其它方法调用。
*/
private URL getClassLocationURL(final Class cls) {
if (cls == null) {
throw new IllegalArgumentException("class that input is null");
}
URL result = null;
final String clsAsResource = cls.getName().replace('.', '/').concat(".class");
final ProtectionDomain pd = cls.getProtectionDomain();
if (pd != null) {
final CodeSource cs = pd.getCodeSource();
if (cs != null) {
result = cs.getLocation();
}
if (result != null) {
if ("file".equals(result.getProtocol())) {
try {
if (result.toExternalForm().endsWith(".jar")|| result.toExternalForm().endsWith(".zip")) {
result = new URL("jar:".concat(result.toExternalForm()).concat("!/").concat(clsAsResource));
}
else if (new File(result.getFile()).isDirectory()) {
result = new URL(result, clsAsResource);
}
}
catch (MalformedURLException ignore) {
}
}
}
}
if (result == null) {
final ClassLoader clsLoader = cls.getClassLoader();
result = clsLoader != null ? clsLoader.getResource(clsAsResource): ClassLoader.getSystemResource(clsAsResource);
}
return result;
}
希望本文所述对大家的Java程序设计有所帮助。
Java 查看文件绝对路径,JAVA获取文件绝对路径的方法相关推荐
- java curl get_如何从Java中的curl get请求获取文件?
我正在尝试使用API下载一些XBRL文件.为了做到这一点,我需要做一个卷曲的请求,就像这样:如何从Java中的curl get请求获取文件? curl -XGET http://distribut ...
- php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...
PHP PUT方式传文件的话,如何获取文件内容呢 ? 最近因为在做前后端分离,后端PHP所有Api都使用RESTFul风格. 但是在使用PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上 ...
- java文件绝对路径_获取文件夹文件绝对路径
引用 linuxpro https://zhidao.baidu.com/question/59940919.html?fr=iks&word=DOS+%C3%FC%C1%EE&i ...
- java 运行os文件路径_Java获取文件路径的几种方式
关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径. http://www.su ...
- java 获取路径_JAVA获取文件路径
我们在上传文件和文件处理的时候需要获取资源文件的路径.但是在项目中获取的文件路径,可能并不是我们想要的文件路径,因为开发项目中获取的路径与打成jar包后的路径并不一致. 以一个SpingCloud项目 ...
- java获取文件的所有者_java获取文件夹下所有文件的名称 | 星尘
大体思路:先获取路径,接着查询当前目录下是否存在文件,如果不存在就结束程序,返回null.如果存在就判断是目录还是文件. import java.io.File; public class GetFo ...
- java文件file字符集_获取文件字符集(或文件编码) 的工具类
packageorg.mozilla.intl.chardet; importjava.io.BufferedInputStream; importjava.io.File; importjava.i ...
- java获取文件编码_java如何获取文件编码格式
1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...
- java 文件md5校验_Java 获取 文件md5校验码
讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...
- java查看日志命令_[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...
[Java教程][Linux]linux查看日志文件内容命令tail.cat.tac.head.echo 0 2017-11-14 12:00:29 linux查看日志文件内容命令tail.cat.t ...
最新文章
- 用C语言写PHP扩展
- 一文轻松了解Graph Neural Networks
- Application runtime path /opt/lampp/htdocs/yii/test/protected/runtime is not valid. 错误
- 常见的算法排序(2)
- 你还在 996 ?提升工作效率请看这几个公众号
- 惠普战66怎么用u盘进入系统_惠普笔记本怎么用u盘启动装系统,空间也要大所以超来超受欢迎!...
- 探讨.NET Core的未来
- 软件工程详细设计说明书_软件工程导论知识点梳理之简答题
- 通过脚本提示是否提交并将表单发向另一页面处理!!
- 前端开发利器—FIDDLER 转
- 【英语学习】【WOTD】 putsch 释义/词源/示例
- linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法
- kotlin数据类_Kotlin数据类
- python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...
- 23.Instance Objects
- 马尾物联网企业主导或参与制定修订各级标准达60项
- vue使用下载插件来完成下载文件
- 消息中间件----ActiveMQ
- 未转变者服务器载具名称,交通工具 - 未转变者中文维基 | Unturned资料站 - 灰机wiki...
- mysql多数据源配置
热门文章
- python django web项目的构建步骤(一)
- 《Android App开发入门:使用Android Studio 2.X开发环境》——1-3 Android Studio 快速上手...
- docker centos 无法用systemctl 启动服务的问题
- Nimbus/Supervisor本地目录结构
- Linq之延迟加载特性
- 破解网页禁止使用“复制”、“粘贴“
- Asp.net 的网络打印 – Javascript 控制打印
- linux常用的命令行
- keras中的fit函数参数_keras的fit_generator与callback函数
- php rule engine,jinchunguang