[Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符.
首先这段代码在Unix/Linux系统上会去找根路径,但在Windows系统上会去找C:盘还是D:盘还是其它盘呢?
其实它会去找user.dir所在盘符的根目录,user.dir即用户的当前工作目录,也就是你跑Java程序所在的目录,那么你跑Java程序所在路径的根盘符就是"/"指代的位置.
另外,由于\\ 和/ 在windows系统中的等效性,new File("\\")也会找到同一个盘符.
验证程序如下:
import java.io.File; import java.util.Properties; public class FileTest { public static void main(String[] args) { File filesFolder = new File("/"); System.out.println("filesFolder's absolute path=:'" + filesFolder.getAbsolutePath()+"'."); String userDir=System.getProperty("user.dir"); System.out.println("userDir='" + userDir+"'."); File filesFolder2 = new File("\\"); System.out.println("filesFolder2's absolute path=:'" + filesFolder2.getAbsolutePath()+"'."); //Properties props = System.getProperties(); //props.list(System.out); } }
输出:
filesFolder's absolute path=:'C:\'.
userDir='C:\pleiades\userdir'.
filesFolder2's absolute path=:'C:\'.
大家可以把这段程序分别放到C:,D:,E:盘跑一下,看看和我所说的是否一致.
这种写法有一个明显的好处是如果Windows系统程序运行所在盘下有和Unix/Linux下同样的路径,比如程序在D:盘下跑,数据文件在d:/usr/data/abc下,Unix下也有/usr/data/abc路径,那么路径部分不需修改就可直接使用了.
--END-- 2019-11-29 15:33
分类:
Java.Core
, Java.文本文件操作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2014-11-29 怪异恼人的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream问题的解决
2014-11-29 Spring3的quartz定时任务
2014-11-29 网页开发使用的HTML最精简模板
2013-11-29 【Canvas与艺术】蓝底金菊花桌面
2013-11-29 【Canvas与电脑桌面】用六角回旋镖铺满一个平面(1920*1080)