// Tutorial //

Java File separator, separatorChar, pathSeparator, pathSeparatorChar

Published on August 3, 2022
Default avatar
By Pankaj
Developer and author at DigitalOcean.
Java File separator, separatorChar, pathSeparator, pathSeparatorChar

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.

java.io.File class contains four static separator variables. Here we will learn about them and when to use it.

  1. File.separator: Platform dependent default name-separator character as String. For windows, it’s ‘\’ and for unix it’s ‘/’.
  2. File.separatorChar: Same as separator but it’s char.
  3. File.pathSeparator: Platform dependent variable for path-separator. For example PATH or CLASSPATH variable list of paths separated by ‘:’ in Unix systems and ‘;’ in Windows system.
  4. File.pathSeparatorChar: Same as pathSeparator but it’s char.

Java File separator

Note that all of these are final variables and system dependent. java file separator, java path separator, separatorChar Here is the java program to print these separator variables.

package com.journaldev.files;

import java.io.File;

public class FileSeparator {

    public static void main(String[] args) {
        System.out.println("File.separator = "+File.separator);
        System.out.println("File.separatorChar = "+File.separatorChar);
        System.out.println("File.pathSeparator = "+File.pathSeparator);
        System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
    }

}

Output of above program on Unix system:

File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :

Output of the program on Windows system:

File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;

To make our program platform independent, we should always use these separators to create file path or read any system variables like PATH, CLASSPATH. Here is the code snippet showing how to use separators correctly.

//no platform independence, good for Unix systems
File fileUnsafe = new File("tmp/abc.txt");

//platform independent and safe to use across Unix and Windows
File fileSafe = new File("tmp"+File.separator+"abc.txt");

That’s all for file separators, we will learn more about java io in future posts.


Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Pankaj

author

Developer and author at DigitalOcean.

Still looking for an answer?

Was this helpful?

I really impressed…

- Amit

    Thank you for this. Very useful and well explained.

    - Marc

      427446 685862I discovered your weblog web site on google and check several of your early posts. Continue to maintain up the really excellent operate. I just additional up your RSS feed to my MSN News Reader. Seeking forward to reading a lot more from you later on!

      - iZpDh1EmjH3z

        I relish, result in I discovered just what I used to be taking a look for. You’ve ended my four day long hunt! God Bless you man. Have a great day. Bye

        - separator tłuszczów