JAVA获取文件本身所在的磁盘位置

摘要:
我们在做java开发时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:E:\workspace\JavaGUI\bin\com\util这个目录,这样虽然可行,但是,却产生了很大的局限性,因为读取的文件必须要要满足在E:\workspace\JavaGUI\bin\com\util之下才能够被正常读取,否则java抛异常。那如果在没有E盘盘符的服务器上,这样的程序是没办法执行的。所以就需要我们的程序能够读取当前文件的所在位置,从而确定文件的物理磁盘位置,而不是手动写入这个位置。

我们在做java开发(纯java程序,或者java web开发)时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:E:\workspace\JavaGUI\bin\com\util这个目录,这样虽然可行,但是,却产生了很大的局限性,因为读取的文件必须要要满足在E:\workspace\JavaGUI\bin\com\util之下才能够被正常读取,否则java抛异常。那如果在没有E盘盘符的服务器上,这样的程序是没办法执行的。所以就需要我们的程序能够读取当前文件的所在位置,从而确定文件的物理磁盘位置,而不是手动写入这个位置。

以下程序,就实现了这个功能

/**
* 得到类的路径,例如E:\workspace\JavaGUI\bin\com\util
* @return
* @throws java.lang.Exception
*/
public String getClassPath() throws Exception {
try {
String strClassName = getClass().getName();
String strPackageName = "";
if (getClass().getPackage() != null) {
strPackageName = getClass().getPackage().getName();
}
String strClassFileName = "";
if (!"".equals(strPackageName)) {
strClassFileName = strClassName.substring(strPackageName.length() + 1,
strClassName.length());
} else {
strClassFileName = strClassName;
}
URL url = null;
url = getClass().getResource(strClassFileName + ".class");
String strURL = url.toString();
strURL = strURL.substring(strURL.indexOf('/') + 1, strURL
.lastIndexOf('/'));
//返回当前类的路径,并且处理路径中的空格,因为在路径中出现的空格如果不处理的话,
//在访问时就会从空格处断开,那么也就取不到完整的信息了,这个问题在web开发中尤其要注意
return strURL.replaceAll("%20", " ");
} catch (Exception ex) {
ex.printStackTrace();
throw ex;
}
}

免责声明:文章转载自《JAVA获取文件本身所在的磁盘位置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于窗口重画的初级问题ACM输入输出之python下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

chromedriver的使用

1.调用chrome driver System.setProperty("webdriver.chrome.driver", "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe"); 2.创建chromeOption对象 ChromeOptions chromeOptio...

smali 语言语法

Androidkiller 可以反编译Android的apk,生成一种.smali代码。(这理解好像不对) 网上找了一篇smali的语法手册,可以方便查找,文章名《Smali文件语法参考》 手册地址:http://blog.csdn.net/litton_van/article/details/7843490 网上有一篇smali的语法讲解(java与sm...

C#文件处理相关内容

C#修改文件内容和过滤有效内容,文件格式一定。 OpenFileDialog file = new OpenFileDialog();//定义新的文件打开位置控件 file.InitialDirectory =Application.StartupPath; file.Filter...

JAVA中获取当前执行路径

1)方式一 URI webPathTemp = Thread.currentThread().getContextClassLoader().getResource("").toURI();StringwebPath=String.valueOf(webPathTemp.getPath());webPath = webPath.substring(1,we...

Java中将String格式的标准时间字符串转换为Date格式的方法

场景 前端在往后端传递时间参数时,传递的是标准时间格式的字符串。 比如下面的lxyf参数 怎样将其转换为Date格式。 注: 博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。 实现 调用如下转换格式的方法 Date lxyfDate = str2Date...

redis 在 php 中的应用(key篇)

本文为我阅读了redis参考手册之后结合博友的博客编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: KEY(键) DEL EXISTS EXPIRE EXPIREAT keys MOVE PERSIST TTL RANDOMKEY RENAME RENAMENX TYPE SORT KEY(...