Great one, Stanley! The path separator character in the file system depends on the operating system — and Java provides a portable way to handle this.
✅ Path Separator vs File Separator
Java actually defines two important separators in file paths:
🔹 1. File Separator (File.separator
)
- Separates directories in a path (like between folders)
- OS-dependent:
OS | File.separator |
---|---|
Windows | \ |
Unix/Linux/macOS | / |
📌 Example:
String path = "folder" + File.separator + "file.txt";
🔹 2. Path Separator (File.pathSeparator
)
- Separates multiple paths in environment variables (like
CLASSPATH
) - OS-dependent:
OS | File.pathSeparator |
---|---|
Windows | ; |
Unix/Linux/macOS | : |
📌 Example:
String classpath = "lib/core.jar" + File.pathSeparator + "lib/utils.jar";
🧵 TL;DR
Name | Purpose | Windows | Unix/macOS | Java Constant |
---|---|---|---|---|
File Separator | Separates folders in a file path | \ | / | File.separator |
Path Separator | Separates multiple paths | ; | : | File.pathSeparator |