java知识点---文件分隔符
本篇讲述java编程中,怎样解决跨平台时,因不同系统中分隔符不同导致的文件或路径找不到的问题
首先来看两个例子:
一、linux系统和windows系统中的文件路径:
Linux系统:
Windows系统:
可以看到Linux系统中,路径中的文件名分隔符是"/",而Windows中是"\"
二、linux系统和windows系统中的path路径:
Linux系统:
.:%JAVA_HOME%\lib:%JAVA_HOME%\lib\tools.jar:%JAVA_HOME%\jre\lib\rt.jar:
Windows系统:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar;
同样,可以看到Linux系统中,path间的分隔符是":"(冒号),而Windows中是";"(分号)
因为分隔符的不同,我们在编程时就不能硬性制定文件路径或path之间的分隔符,因为这会导致跨平台时出现找不到文件或路径的错误,
在java中是这样解决的,jdk中有对应的方法,可以根据当前系统类型动态地获取文件或path的分隔符,下面是使用方法及源码中的相关描述:
一、获取文件路径中的文件名分隔符:
File.separator;
下面开始追踪源码:
第一步:
系统相关的默认名称分隔符。为了方便它被表示为一个字符串,该字符串只包含一个字符,即separatorChar
第二步:
系统相关的默认名称分隔符,这个字段被初始化为包含系统属性file.separator值的第一个字符,在UNIX系统中是”/”,在Windows系统中是”\”
第三步:
FileSystem对象表示当前平台的本地文件系统
第四步:
返回本地文件系统的名称分隔符
二、获取path中的分隔符:
File.pathSeparator
第一步:
系统相关的路径分隔符,为了方便被表示为一个字符串,这个字符串是一个单独的字符,即pathSeparatorChar
第二步:
系统相关的路径分隔符。这个字段被初始化为系统属性path.separator值的第一个字符,这个字符被用来分隔以列表形式给定的文件序列的文件名称,
在UNIX系统中是冒号(:),在Windows系统中是分号(;)
第三步:
FileSystem对象表示当前平台的本地文件系统
第四步:
返回本地文件系统的路径分隔符
所以在java编程中,遇到文件和path等操作时,为了跨平台时不引起因分隔符导致的错误,就要调用这两个方法来进行文件路径或path的拼接。
本系列为java编程相关问题,未完待续......
java知识点---文件分隔符的更多相关文章
- Java 知识点(二)
接<Java 知识点(一)> java的输入输出与 c 语言不同,下面介绍Java的格式: 16.因为Java的输入类Scanner,定义在java.util包中,所以Java需要输入时要 ...
- java进行文件上传,带进度条
网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...
- 学Android开发,入门语言java知识点
学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...
- Java删除文件夹和文件
转载自:http://blog.163.com/wu_huiqiang@126/blog/static/3718162320091022103144516/ 以前在javaeye看到过关于Java操作 ...
- Java操作文件夹的工具类
Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- 【转】Java删除文件夹和文件
原文网址:http://kxjhlele.iteye.com/blog/323657 以前在javaeye看到过关于Java操作文件的一篇文章,写的很好,但找了半天也没找到,就把找到底几篇文章整理一下 ...
- java知识点梳理
网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) ...
- Java IO 文件与流基础
Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在 ...
随机推荐
- CF596D Wilbur and Trees
题意:有一些高度为h的树在数轴上.每次选择剩下的树中最左边或是最右边的树推倒(各50%概率),往左倒有p的概率,往右倒1-p. 一棵树倒了,如果挨到的另一棵树与该数的距离严格小于h,那么它也会往同方向 ...
- IDEA使用Maven+Tomcat插件实现热部署
1 配置tomcat pom.xml <!-- tomcat7启动插件 --> <plugin> <groupId>org.apache.tomcat.maven& ...
- QQ邮箱发送信息
#以下库为python自带的库,不需要进行安装 #邮件发信动作 import smtplib #构造邮件内容 from email.mime.text import MIMEText #构造邮件头 f ...
- CobaltStrike进阶篇-批量上线
前言 当获取一台目标服务器权限时,更多是想办法扩大战果,获取目标凭据并横向进行登陆是最快速的拿权方式.但目标所处环境是否可出网,如何利用CobalStrike进行批量上线,正是本文所要讲述的内容. 获 ...
- 杂项-公司:AT&T
ylbtech-杂项-公司:AT&T AT&T公司(英语:AT&T Inc.,原为American Telephone & Telegraph的缩写,也是中文译名美国电 ...
- Java +支付宝 +接入
说下业务场景, 公司之前的支付宝业务是PHP对接的现在改成 Java ,在接入出现不同的问题.之前PHP用的是老的移动支付, 现在Java的新接口 , 需要签约. 跟运维沟通好几次, 说签约不了, 只 ...
- js中读取json数据
1.JSON字符串转为JSON对象 var obj = eval('('+data+')');① var obj = data.praseJSON();② var obj = JSON.prase(d ...
- leetcode 996. Number of Squareful Arrays
给定一个长度小于 12 的数组 要求排列方式的种数 使得相邻和为完全平方 不考虑数学结构 将问题转化为 一笔画问题 和为完全平方代表 之间存在通路 回溯法 N^N 记忆化搜索 NN 2^N 判断是否是 ...
- ES6之主要知识点(一)
引自:http://es6.ruanyifeng.com let 块级作用域 const 1.let let声明的变量只在它所在的代码块有效. for循环的计数器,就很合适使用let命令. var a ...
- C/C++常考基础面试题(更新)
题目来自牛客网 解析部分来自牛客网 https://www.nowcoder.com/4685265 一 分析下面代码有什么问题? void test1() { char string[10]; ch ...