手机版
你好,游客 登录 注册
背景:
阅读新闻

Java文件路径问题小记(Windows & Linux)

[日期:2016-09-27] 来源:Linux社区  作者:wlwlwlwl015 [字体: ]

前言

项目部署到生产环境(CentOS 7)后在运行过程中多了一些不明文件目录,如下图:
这里写图片描述

项目中有相关的下载功能,所以需要在服务器端创建目录,但很明显创建失败了,不难发现图中的路径分隔是和windows操作系统一致的反斜杠:
这里写图片描述

但很遗憾在Linux操作系统中路径之间的分隔符和windows是有区别的,下面具体看看这两种操作系统关于文件路径的区别以及我们如何在程序中拼接同时适配这两个操作系统的路径字符串。

windows与linux的路径分隔符

在Windows中我们拼接路径时是使用反斜杠的,而在Java程序中需要使用双反斜杠,因为第一个反斜杠会被当作转义字符,如下图所示:
这里写图片描述

但是类似的程序放在Linux中就会报错,因为Linux中文件路径分隔符并不是反斜杠,而是正斜杠,如下图所示:
这里写图片描述

搞清楚了区别和问题,最后看看如何在程序中拼接路径以达到同时适配两种操作系统,其实也很简单,File类提供了一个静态常量——separator。

利用separator拼接目录

如题,那么我们将分隔符统统换成File.separator来分别看一下运行结果,首先是Windows系统:
这里写图片描述

如上图所示,可以清楚看到此时separator的值是双反斜杠,接下来再看一下Linux系统中的separator:
这里写图片描述

如上图所示,可以清楚的看到打印出的separator是正斜杠,通过separator即可完美的解决操作系统之间路径分隔符导致的问题,所以在java程序中尽量通过separator来取代斜杠来拼接路径字符串,尤其是应用服务器集群中既有windows服务器,又有linux服务器时,这一点尤为重要。

总结

简单记录一下这个Java文件路径相关的问题,希望对遇到同样问题的同学有所帮助,The End。

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-09/135544.htm

linux
相关资讯       Java文件路径 
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 王先森丶会员 发表于 2016/10/13 10:15:07
学到了,File.separator 作为windows与linux的路径区别。感谢楼主分享~