1、【问题】
在之前的通用查询框架中使用的读取XML配置文件中有一个动态获取文件的方法:
public String getConfFile(String file) {
URL confURL = getClass().getClassLoader().getResource(file);
if (confURL == null)
confURL = getClass().getClassLoader().getResource(
"META-INF/" + file);
if (confURL == null)
confURL = Thread.currentThread().getContextClassLoader()
.getResource(file);
if (confURL == null) {
System.err.println(" cann't find config file:-->" + file);
} else {
String filePath = confURL.getFile();
File file1 = new File(filePath);
if (file1.isFile())
return filePath;
}
return null;
}
可是该方法在JDK 1.4.X下运行有问题,无法正常获取路径!
但是在JDK1.5中运行无误!
2、【分析】
经过跟踪发现,在1.4.X下,confURL.getFile()获取的路径如下:
/D:/Tomcat%205.0.28/webapps/piccdcms/WEB-INF/classes/config/Module.xml
很明显这里的问题在于:Tomcat%205.0.28!!
而在JDK 1.5里面是正常的显示:
/D:/Tomcat 5.0.28/webapps/piccdcms/WEB-INF/classes/config/Module.xml
3、【解决方案】
String filePath = confURL.getFile();
File file1 = new File(filePath);
if (file1.isFile())
return filePath;
===========》
String filePath = confURL.getFile();
filePath = filePath.replaceAll("%20", " ");
File file1 = new File(filePath);
if (file1.isFile())
return filePath;
修改之后,该方法就可以在JDK1.4中正常使用了!
4、【总结】
对于JDK1.5中的URL.getFile(),能自动把unicode编码(%20)转换过来。而在1.4.X中还不行,必须人为进行转换。
分享到:
相关推荐
在这个名为"BAT批处理脚本-文件相关操作-获取相对路径.cmd.zip"的压缩包中,包含了一个用于获取文件相对路径的批处理脚本。 批处理脚本的编写通常涉及到DOS命令,例如`cd`(改变目录)、`dir`(列出目录内容)和`...
Class.getResourceAsStream() 方法返回的是一个 InputStream 对象,该对象可以读取文件的内容。该方法有两个参数,第一个参数是文件的相对路径,第二个参数是 Class 对象。相对路径可以是相对于当前类所在的包的路径...
`extractDirPath`方法从给定的文件路径中提取目录路径,返回的是路径中最后一个分隔符(通常为'/'或'\')之前的部分。而`extractFileName`则返回路径中最后一个分隔符之后的部分,即文件名。 ```java String ...
可以获取文件完整路径,不过要求环境是在windows下的google浏览器,应为不同浏览器,不同操作系统下获取文件路径方法不同,我没有找到通用的方法,因为浏览器处于安全考虑本身就禁止访问本地中的文件系统。
通过以上介绍,我们可以看到,在Java开发中,无论是Web开发还是普通的Java应用程序开发,获取路径都是一个非常重要且实用的功能。掌握这些方法,可以帮助开发者更好地管理项目中的文件路径,提高程序的灵活性和可...
windows linux 下,获取java项目绝对路径的方法,struts2设置了struts.multipart.saveDir后会在根目录建立文件夹,这样会涉及linux下的权限问题
使用`Path.GetInvalidPathChars()`或`Path.GetInvalidFileNameChars()`可以获取非法路径或文件名字符,通过遍历路径字符串检查是否存在这些字符,从而判断路径是否有效。 2. **路径类型识别** 可以通过`Directory...
1. **读取文件**:提供读取整个文件内容的方法,例如,可以将文件内容一次性读入字符串或字节数组。这通常通过BufferedReader或FileInputStream结合BufferedInputStream实现。 2. **写入文件**:允许向文件追加内容...
要实现华为和小米通用的图片路径获取,可以编写一个方法,首先通过ContentResolver查询MediaStore中的图片信息,然后遍历查询结果,检查每个图片的`data`字段,这通常是图片的绝对路径。对于未出现在MediaStore中的...
至于【标签】"复制路径",这提示我们关注的是MyEclipse中的路径复制功能,无论是在日常的代码编写、调试还是配置项目时,能够快速准确地获取并复制文件路径都是一个非常实用的技能。 【压缩包子文件的文件名称列表...
在VB(Visual Basic)编程中,获取系统路径是一项基本的操作,它允许开发者访问用户的系统资源,如临时文件夹、程序文件夹或者用户个人文件夹等。系统路径的获取对于读写文件、安装程序或者执行系统相关操作至关重要...
在易语言编程环境中,通用对话框(Common Dialog)是一个非常重要的组件,它为用户提供了一种标准的、统一的方式来与应用程序进行交互,例如打开文件、保存文件等操作。本资源是关于通用对话框保存文件功能的易语言...
- **定义变量**:首先定义了一个字符串 `s`,其值为 `"c:/1/11/text.java"`,代表一个文件路径。 - **提取文件名**:通过调用 `s.substring(s.lastIndexOf("/")+1)` 方法,从字符串 `s` 中提取出文件名部分。这里的...
请注意,这只是一个通用的处理方式,实际路径可能因用户的个性化设置或不同版本的操作系统而异。在Linux上,"我的文档"路径可能在`~/.local/share/Documents`,而在macOS上通常与Windows相似,也是`~/Documents`。 ...
在进行Java开发时,文件路径处理一直是令人头疼的问题之一。特别是在涉及跨平台或在不同环境中部署的应用程序时,路径问题更是频繁出现。本文旨在深入探讨Java路径问题,并提供一种有效且通用的解决方案。 #### 二...
在IT行业中,文件路径检查是一项基础但至关重要的任务,特别是在涉及到网络路径时。"文件路径检查"这个主题主要关注如何在C#编程环境下处理和验证包含映射的网络路径,以及如何解决网络路径未启用的问题。下面将详细...
5. **通用函数**:`getvl`函数用于根据浏览器类型的不同,采取不同的方法获取文件路径。通过识别用户代理字符串来区分不同的浏览器,并应用不同的逻辑以获取文件的路径或URL。IE浏览器中,对于IE6和IE7、IE8分别有...
举例来说,如果你有一个文件路径`/viktor/mysqlinstall/mysql.tar.gz`,你可以通过`Path`对象轻松获取`mysql.tar`作为`stem`,`.gz`作为`suffix`,并使用`with_name()`方法将文件名改为`mysql-5.tgz`。 总结来说,...
本文主要针对润乾报表在宁夏OMS系统中应用时出现的一个典型问题进行分析和解决。该问题表现为:当用户尝试通过特定的JSP页面(`showReportCZP.jsp`)查看操作票时,系统会提示子报表文件(`czpcb.raq`)不存在的错误...