Java File分隔符和 Path分隔符
不同的操作系统使用不同的字符作为文件和路径分隔符。当我们的应用程序需要在多个平台上运行时,我们需要正确处理这些问题。
Java帮助我们选择一个合适的分隔符,并提供了一些函数来帮助我们创建能在主机操作系统上运行的路径。
在本文中,我们将了解如何编写代码来使用正确的文件和路径分隔符。
2.文件分隔符
文件分隔符是用来分隔构成特定位置路径的目录名的字符。
1.获取文件分隔符
在Java中,有几种方法可以获得文件分隔符。
我们可以用File.separator来获取String的分隔符。
String fileSeparator = File.separator;
我们也可以用File.separatorChar获得这个分隔符的字符。
char fileSeparatorChar = File.separatorChar;
从Java 7开始,我们也可以使用文件系统。
String fileSeparator = FileSystems.getDefault().getSeparator();
输出结果将取决于主机操作系统。文件分隔符在Windows上为\
,在macOS和基于Unix的操作系统上为/
。
2.构造一个文件路径
Java提供了一些方法来从目录列表中构建文件路径。
这里,我们使用Paths类。
Path path = Paths.get("dir1", "dir2");
让我们在Microsoft Windows上测试一下。
assertEquals("dir1\\dir2", path.toString());
同样,我们也可以在Linux或Mac上测试它。
assertEquals("dir1/dir2", path.toString());
我们也可以使用文件类。
File file = new File("file1", "file2");
让我们在Microsoft Windows上测试一下。
assertEquals("file1\\file2", file.toString());
同样,我们也可以在Linux或Mac上测试它。
assertEquals("file1/file2", file.toString());
正如我们所看到的,我们可以只提供路径字符串来构建一个文件路径---我们不需要明确地包括一个文件分隔符。
3.路径分隔符
路径分隔符是操作系统常用的一个字符,用于分隔路径列表中的各个路径。
3.1.获取路径分隔符
我们可以用File.pathSeparator来获取路径分隔符的String。
String pathSeparator = File.pathSeparator;
我们也可以以char的形式获得路径分隔符。
char pathSeparatorChar = File.pathSeparatorChar;
这两个例子都返回了路径分隔符。在Windows上是分号;
,在Mac和基于Unix的操作系统上是冒号:
。
3.2.构造一个文件路径
我们可以用分隔符作为分隔符来构建一个String的文件路径。
让我们试试String.join方法:
String[] pathNames = { "path1", "path2", "path3" };
String path = String.join(File.pathSeparator, pathNames);
这里我们在Windows上测试我们的代码。
assertEquals("path1;path2;path3", path);
而文件路径在Linux或Mac上看起来会有所不同。
assertEquals("path1:path2:path3", path);
类似地,我们可以使用StringJoiner类:
public static StringJoiner buildPathUsingStringJoiner(String path1, String path2) {StringJoiner joiner = new StringJoiner(File.pathSeparator);joiner.add(path1);joiner.add(path2);return joiner;
}
让我们在Microsoft Windows上测试我们的代码。
assertEquals("path1;path2", buildPathUsingStringJoiner("path1", "path2"));
而且它在Mac或Unix上的表现会有所不同。
assertEquals("path1:path2", buildPathUsingStringJoiner("path1", "path2"));
总结
在这篇短文中,我们学习了如何使用系统特定的文件分隔符来构建路径,这样我们的代码就可以在多个操作系统上工作。
我们看到了如何使用内置类Path和File来构造文件路径,我们还看到了如何获得必要的分隔符来使用String连接工具。
Java File分隔符和 Path分隔符相关推荐
- java 文件分隔符_Java文件分隔符
java.io.File类包含四个静态分隔符变量.在这里,我们将了解它们以及何时使用它. File.separator:平台相关的默认名称 - 分隔符是String.对于Windows,它是'\',对 ...
- java 中以||作为split分隔符正确的写法
java 中以||作为split分隔符正确的写法 今天项目中需要在后台处理前台传递过来的拼接字符串,一开始写成str.split("\||"),得不到正确的结果,通过百度查找发现 ...
- Spark:java.net.URISyntaxException: Relative path in absolute URI: file:D:/XXX/SparkFaultBench/spark-
错误: Spark:java.net.URISyntaxException: Relative path in absolute URI: file:D:/XXX/SparkFaultBench/sp ...
- java 千位分隔符_如何在Java中设置千位分隔符?
问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...
- java file ip_java常用工具类 IP、File文件工具类
本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOExcepti ...
- java(File、IO流)
IO流 一.IO流和File类 二 .File类 绝对路径和相对路径 file的成员方法 file的创建方法 file的删除方法 file的判断和获取功能 高级获取方法listFiles() file ...
- java file用法_Java File 类的使用方法详解(转)
转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...
- 探究Java File类中list()、listFiles()的使用及区别,认识和使用匿名内部类
转载自 探究Java File类中list().listFiles()的使用及区别,认识和使用匿名内部类 内容概要: 1.认识File类: 2.File的构造函数: 3.list()及其重载方 ...
- Java File类void deleteOnExit()方法(带示例)
文件类void deleteOnExit() (File Class void deleteOnExit()) This method is available in package java.io. ...
- Java—File类详解及实践
关注微信公众号:CodingTechWork,一起学习进步. File类介绍 File类概述 File类是java.io包下代表与平台无关的文件和目录.File可以新建.删除.重命名文件和目录,但 ...
最新文章
- TypeScript 从听说到入门(上篇)
- java语法基础(总结)
- javascript获取asp.net服务器端控件的值(2009-10-31 15:24:26)转载标签:杂谈 分类:技术分类
- VTK:PolyData之KochanekSplineDemo
- python函数模块讲解_课堂练习讲解_模块化函数封装
- 这4种钱没有也要借,不能等
- mysql5.045_数据库升级后goldengate报错,ORA-04045
- php 动态 常量,PHP中的动态常量?
- AZPR3.0的脱壳教程.
- Go语言实战+code
- 国家地表水水质自动监测站坐标每四小时数据(共1952个监测站,含省份、城市、河流、流域、断面名称、监测时间、水温、pH、DO、CODMn、TP、TN、NH3-N、浊度等)
- 苹果更新失败无法连接服务器未响应,iPhone 更新失败怎么办?更新 iOS 常见的错误代码及解决方法(二)...
- win10右键卡顿原因_win10右键新建卡顿怎么办
- 关于struts.xml的配置思考。
- 贪心背后的故事Codeforces 995B(Suit and Tie)
- C语言怎样判断乘法越界,c语言算术运算符越界问题解决方案
- java抓取网站数据
- 【2】非线性方程求解函数vpasolve
- “希希敬敬对”团队作业——敏捷冲刺7
- 网页在线自动回复客服源码