FileクラスのcreateNewFile、mkdir、およびmkdirs

1796 ワード

createNewFile()
フォルダ(ディレクトリ)を含まないファイルのみを作成するために使用します.
正常にtrueを返し、falseを返すことに失敗しました.
この抽象パス名に指定した名前のファイルが存在しない場合に作成されます.パスの下に指定した名前のファイルがある場合は、作成されずfalseに戻ります.
指定された抽象パスが存在しない場合、IOException:指定されたパスが見つかりません.例:
指定された抽象パス名を「C:/Users/desktop/djomega/test/test.txt」とすると、
public class FileTest {
	public static void main(String[] args) throws IOException {
		File file = new File("C:/Users/Desktop/djomega/test/test.txt");
                //  "C:/Users/Desktop/djomega/test"   ,   IOException:          
		file.createNewFile();
	}
}

mkdir()
この抽象パス名で指定したファイルを作成する前のレベルのディレクトリ.作成に成功してtrueを返し、作成に失敗してfalseを返します.
ディレクトリを作成するだけで、ファイルを作成しません.
指定したファイル名はtestです.txtは、「C:/Users/desktop/djomega」の下にtestというディレクトリがない場合、trueが作成され、逆に作成されずfalseが返されます.
ただし、djomegaというディレクトリさえない場合はfalseを返します.
public class FileTest {
	public static void main(String[] args) throws IOException {
		File file = new File("C:/Users/Desktop/djomega/test/test.txt");
		boolean b = file.getParentFile().mkdirs();
		System.out.println(b);
	}
}

mkdirs()
この抽象パス名で指定したマルチレベルディレクトリを作成します.作成に成功してtrueを返し、作成に失敗してfalseを返します.
ディレクトリを作成するだけで、ファイルを作成しません.
存在する場合、作成に失敗してfasleを返します.
前述したように、djomegaというディレクトリもなく、mkdirs()も作成されます.
public class FileTest {
	public static void main(String[] args) throws IOException {
		File file = new File("C:/Users/Desktop/djomega/test/test.txt");
		boolean b = file.getParentFile().mkdirs();
		System.out.println(b);
	}
}

getParentFile()について
mkdir()またはmkdirs()を使用してディレクトリを作成するには、getParentFile()を使用する必要があります.そうしないと、ファイルもフォルダとして作成されます.
つまりtest.txtはディレクトリとして作成されます.
Fileはファイルでもディレクトリでもあるので、あってもいいです.txt接尾辞は、ファイルではなくディレクトリとしてデフォルト設定されます.