博客
关于我
Java-很深我只知其一-路径获取/处理
阅读量:617 次
发布时间:2019-03-13

本文共 1118 字,大约阅读时间需要 3 分钟。

Java路径获取与处理指南

在Java开发过程中,路径处理是日常工作中的常见操作之一。本文将涵盖从获取容器根路径到处理绝对路径的详细方法。

获取发布容器的根路径

在获取Web项目的根路径时,可以通过以下步骤实现:

  • 使用request对象获取ServletContext:

    request.getSession().getServletContext().getRealPath("/")
    • 以上代码将返回当前应用程序的根路径,路径以操作系统的默认设备文件分隔符表示。
    • 若需在特定包名下获取路径,可将"/"替换为对应包名。
  • 获取以类路径为基准的绝对路径:

    当前类.class.getResource("/").toURI().getPath();
    • 若返回值为null,仅需去掉toURI层即可:
    当前类.class.getResource("/").getPath();
    • 此方法返回的是当前类所在路径,以jar文件的路径为基准。
  • 获取项目根目录

    要获取项目所在工作空间的根目录,可采用以下方法:

  • 使用系统属性:

    String path = System.getProperty("user.dir");
    • 这种方法适用于已知项目根路径时,简单直观。
  • 注意路径处理:

    • 不同操作系统使用不同的设备分隔符(/在Linux,\在Windows),处理时需统一使用File.separator进行处理,以提高代码的跨平台性。
  • 实战示例

    以下是一些实际开发中的路径处理案例,供参考:

    • 循环处理父目录

      假设需要获取当前类所在套uses的根路径,可以通过循环截取处理:

      URL resource = 当前类.class.getResource("...");  while (resource.getPath().contains ../) {      resource = resource.getParent();  }      resource.getPath();
    • 获取项目根目录

      有时需要访问项目的物理根目录,可以通过以下方式:

      String rootPath = new File(System.getProperty("user.dir")).getCanonicalPath();
      • 使用getCanonicalPath()可以获取绝对路径,去除相对性链接。

    总结

    路径处理是Java开发中的一个基础操作,熟练掌握这些方法能显著提升开发效率。在实际应用中,多注意路径的基础分隔符及跨平台性问题,以减少潜在bug。

    如需更深入的学习,可以结合实际项目进行实践,逐步掌握路径处理的技巧。

    注:本文为技术交流内容,仅供参考,未经授权不得转载。

    你可能感兴趣的文章
    POJ 3468 A Simple Problem with Integers
    查看>>
    poj 3468 A Simple Problem with Integers 降维线段树
    查看>>
    poj 3468 A Simple Problem with Integers(线段树 插线问线)
    查看>>
    poj 3485 区间选点
    查看>>
    poj 3518 Prime Gap
    查看>>
    poj 3539 Elevator——同余类bfs
    查看>>
    Qt笔记——官方文档全局定义(三)Macros宏
    查看>>
    poj 3628 Bookshelf 2
    查看>>
    Qt笔记——官方文档全局定义(一)Types数据类型
    查看>>
    POJ 3670 DP LIS?
    查看>>
    POJ 3683 Priest John's Busiest Day (算竞进阶习题)
    查看>>
    POJ 3988 Selecting courses
    查看>>
    POJ 4020 NEERC John's inversion 贪心+归并求逆序对
    查看>>
    poj 4044 Score Sequence(暴力)
    查看>>
    POJ 基础数据结构
    查看>>
    POJ 题目3020 Antenna Placement(二分图)
    查看>>
    Poj(1797) Dijkstra对松弛条件的变形
    查看>>
    SpringBoot为什么不需要xml配置文件?
    查看>>
    POJ--2391--Ombrophobic Bovines【分割点+Floyd+Dinic优化+二分法答案】最大网络流量
    查看>>
    Qt笔记——SQLite初探QSqlDatabase QSqlQuery
    查看>>