Javaのファイルセパレーター、separatorChar、pathSeparator、pathSeparatorCharについて、ネイティブな日本語で言い換えてください。ただし、1つのオプションのみです。Javaのファイルセパレーターを指定する変数separatorCharや、パスの区切り文字を示すpathSeparatorやpathSeparatorCharなどについて。
java.io.Fileクラスには4つの静的なセパレータ変数が含まれています。ここでは、それらについて学び、いつ使用するかを理解します。
-
- File.separator: プラットフォームに依存するデフォルトの名前セパレータ文字列です。Windowsでは「\」、Unixでは「/」です。
-
- File.separatorChar: セパレータと同じですが、文字型です。
-
- File.pathSeparator: パスセパレータに対するプラットフォームに依存した変数です。例えば、Unixシステムでは「:」で区切られたパスのリストであるPATHまたはCLASSPATH変数であり、Windowsシステムでは「;」で区切られたリストです。
- File.pathSeparatorChar: pathSeparatorと同じですが、文字型です。
Javaのファイル区切り
これらはすべて最終変数であり、システムに依存していることに注意してください。これは、これらの区切り文字変数を出力するためのJavaプログラムです。
package com.scdev.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);
}
}
UNIXシステム上での上記プログラムの出力:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
Windowsシステムでのプログラムの出力:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
私たちのプログラムをプラットフォーム非依存にするためには、ファイルパスを作成したり、PATH、CLASSPATHのようなシステム変数を読み取る際には常にこれらの区切り文字を使用するべきです。以下は、正しく区切り文字を使用する方法を示したコードスニペットです。
//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");
ファイルセパレータについては以上です。将来の投稿で、Java IOについてもっと学びましょう。