未加星标

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

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 20160901 | 作者 红领巾 ] 0人收藏点击收藏
前言
项目部署到生产环境(CentOS 7)后在运行过程中多了一些不明文件目录,如下图:
Java文件路径问题小记(Windows & Linux)
项目中有相关的下载功能,所以需要在服务器端创建目录,但很明显创建失败了,不难发现图中的路径分隔是和windows操作系统一致的反斜杠:
Java文件路径问题小记(Windows & Linux)

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

windows与linux的路径分隔符
在Windows中我们拼接路径时是使用反斜杠的,而在java程序中需要使用双反斜杠,因为第一个反斜杠会被当作转义字符,如下图所示:
Java文件路径问题小记(Windows & Linux)
但是类似的程序放在Linux中就会报错,因为Linux中文件路径分隔符并不是反斜杠,而是正斜杠,如下图所示:
Java文件路径问题小记(Windows & Linux)

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

利用separator拼接目录
如题,那么我们将分隔符统统换成File.separator来分别看一下运行结果,首先是Windows系统:
Java文件路径问题小记(Windows & Linux)
如上图所示,可以清楚看到此时separator的值是双反斜杠,接下来再看一下Linux系统中的separator:
Java文件路径问题小记(Windows & Linux)

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

总结

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

本文地址:http://www.codesec.net/Linux/2016-09/135544.htm


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

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: LinuxWindowsJava服务器其实美的
分页:12
转载请注明
本文标题:Java文件路径问题小记(Windows & Linux)
本站链接:http://www.codesec.net/view/483448.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(24)