Java中路径的获取总结以及URL和URI的区别

简介:


先描述一下资源的位置:我在src下建了一个cn.config的包,里面有Config.xml这个文件。来看这一段代码

package cn.test;
import java.net.URISyntaxException;
import java.net.URL;

public class PathTest
{
 public static void getURL()
 {
  URL url = PathTest.class.getClassLoader().getResource("");

  System.out.println(url);
 }
 
 public static void getURL2()
 {
  URL url = PathTest.class.getClassLoader().getResource("cn/config/Config.xml");

  System.out.println(url);
 }
 
 public static void getURI() throws URISyntaxException
 {
  String uri = PathTest.class.getClassLoader().getResource("cn/config/Config.xml").getPath();

  System.out.println(uri);
 }
 
 public static void main(String[] args) throws URISyntaxException
 {
  getURL();
  getURL2();
  getURI();
 }
}

 

对于Java项目的结果
file:/E:/mydir/PathTest/bin/
file:/E:/mydir/PathTest/bin/cn/config/Config.xml
/E:/mydir/PathTest/bin/cn/config/Config.xml

bin文件夹中放的是.java被编译后的.class文件,若是普通文件就按照路径自动拷贝的bin文件夹下,类加载器在加载.class的时候把普通文件也一起加载了。web项目也是同样的道理,只是文件夹不同。


对于Web项目的结果
file:/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/
file:/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/cn/config/Config.xml
/E:/mydir/PathTest_Web/WebRoot/WEB-INF/classes/cn/config/Config.xml

 


对于Servlet,Action取到项目里的路径和上面一样,如何取到在服务器的值?比如在tomcat里面的值呢?
String path = ServletActionContext.getServletContext().getRealPath("/");

 

那么URIURL有什么区别呢?

URI—Universal Resource Identifier通用资源标志符
Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。

URL—Uniform Resource Location统一资源定位符
URLInternet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic
采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
URL一般由三部组成
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等


参考地址:http://www.cnblogs.com/helife/archive/2010/12/17/1908804.html

 

目录
相关文章
|
11月前
一文带你了解 PoE 标准和功率
【10月更文挑战第1天】
1442 0
一文带你了解 PoE 标准和功率
|
10月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
282 6
|
机器学习/深度学习 自然语言处理 并行计算
多模态大模型技术原理与实战(2)
大模型被广泛应用有以下几个前提:效果好、效率高、成本可控,目前,大模型在这几个方面还不够理想。
457 5
|
存储 人工智能 安全
阿里云第八代云服务器实例通用型g8i实例性能和适用场景介绍
随着云计算技术的不断演进,阿里云作为国内领先的云服务提供商,持续推出创新的云服务器实例以满足不同用户的需求。近日,阿里云宣布其第八代云服务器ECS g8i实例已经完成全新升级。g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。
阿里云第八代云服务器实例通用型g8i实例性能和适用场景介绍
|
算法 安全 Linux
Linux 下共享内存方式 :System V共享内存、共享文件映射(mmap)、POSIX共享内存对比...
Linux 下共享内存方式 :System V共享内存、共享文件映射(mmap)、POSIX共享内存对比...
326 2
|
存储 自然语言处理 算法
【软件设计师—基础精讲笔记6】第六章 结构化开发方法
【软件设计师—基础精讲笔记6】第六章 结构化开发方法
814 0
|
搜索推荐 大数据 测试技术
|
存储 数据可视化 定位技术
如何将数据从 ArcGIS Online 添加到 QGIS
如何将数据从 ArcGIS Online 添加到 QGIS
606 0
如何将数据从 ArcGIS Online 添加到 QGIS
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
1205 0
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)