ファイル
システムとパスの区切り記号
- システムとパスに関連するセパレータ
public class Demo01FIle {
public static void main(String[] args) {
String pathSeparator = File.pathSeparator;
System.out.println(pathSeparator); // 结果是分号 代表是windows系统
String separator = File.separator;
System.out.println(separator); // 结果是反斜杠\ 代表文件名称分隔符
}
}
絶対パスと相対パス
- 絶対パス:ドライブ文字で始まる完全なパス
C:\ a.txt
C:\ Users \ itcast \ IdeaProjects \ a.txt
D:\ demo \ b.txt
- 相対パス:簡略化されたパスです
現在のプロジェクトに相対的なルートディレクトリ(C:\ Users \ itcast \ IdeaProjects \ a.txt)を
相対的に参照します。現在のプロジェクトのルートディレクトリに相対的な場合、パスを簡略化して
C:\ Users \ itcast \ IdeaProjects \ demo \ 123と記述できます。.txt-> 123.txtに簡略化(ルートディレクトリとして省略可能)
注:
- パスは大文字と小文字を区別しません
- パス内のファイル名の区切り文字には、ウィンドウの円記号を使用します。円記号はエスケープ文字です。2つの円記号を書き込むと、1つの円記号を表します
- 次の図は、ファイルオブジェクトを初期化するコンストラクタです。
ファイル(文字列パス名)
文字列パス名:文字列パス名パス
はファイルまたはフォルダで終了できます。
パスは相対パスまたは絶対パスです。
パスは存在する場合と存在しない場合があります。
ファイルオブジェクトを作成します、真または偽のパスに関係なく、文字列パスをファイルオブジェクトとしてカプセル化する
File file = new File("G:\\1.jpg");
System.out.println(file); // 打印出来的就是 G:\1.jpg
File file2 = new File("G:\\word\\office2003");
System.out.println(file2); // 打印 G:\word\office2003
ファイル(文字列の親、文字列の子)
文字列の親:親のパス
文字列の子:子のパス
親のパスと子のパス、別々に記述でき、柔軟
File file = new File("C:\\","1.jpg");
System.out.println(file); // 打印出来 C:\1.jpg;
ファイル(ファイルの親、文字列の子)
ファイルの親:親のパス
文字列の子:子のパス
親のパスと子のパスは別々に書くことができ、
親のパスは柔軟で可変です。オブジェクトを作成
File file = new File("C:\\");
File file2 = new File(file,"1.jpg");
System.out.println(file2); // 打印 C:\\1.jpg
一般的な方法
Getメソッド
- public String getAbsolutePath()は、このファイルの絶対パス名文字列を返します
- public String getPath()このファイルをパス名文字列に変換します
- public String getName()は、このファイルが表すファイルまたはディレクトリの名前を返します
- public long length()は、このファイルによって表されるファイルの長さを返します
public static void main(String[] args) {
File file2 = new File("G:\\word\\office2003\\office2003.rar");
System.out.println(file2);
String absolutePath = file2.getAbsolutePath();
System.out.println("文件绝对路径:"+absolutePath);
String path = file2.getPath();
System.out.println("文件构造路径:"+path);
String name = file2.getName();
System.out.println("文件的名字:"+name);
long length = file2.length();
System.out.println("文件长度:"+length+"的字节");
}
注:
- public long length():このファイルで表されるファイルの長さを返します
- フォルダにはサイズの概念がないため、フォルダサイズを取得できません
- コンストラクタで指定されたパスが存在しない場合、lengthメソッドは0を返します
判定方法
- public boolean exists()は、このファイルのパスが存在するかどうかを返します
- public boolean isDirectory()このファイルは、それがディレクトリであるかどうかを示します
- public boolean isFile()このファイルは、ファイルかどうかを示します
- public boolean canExecute()このファイルがパス名でファイルを実行できるかどうか
- public boolean canRead()このファイルが読み取り可能かどうか
- public boolean canWrite()このファイルが書き込み可能かどうか
public static void main(String[] args) {
File file2 = new File("G:\\word\\office2003\\office2003.rar");
boolean exists = file2.exists();
System.out.println(exists);
boolean canRead = file2.canRead();
System.out.println(canRead);
boolean canWrite = file2.canWrite();
System.out.println(canWrite);
boolean canExecute = file2.canExecute();
System.out.println(canExecute);
boolean directory = file2.isDirectory();
System.out.println(directory);
boolean file = file2.isFile();
System.out.println(file);
}
削除する方法
- public boolean createNewFile()現在、この名前のファイルがまだ存在しない場合にのみ、新しい空のファイルを作成します
- public boolean delete()は、このファイルが表すファイルまたはディレクトリを削除します
- public boolean mkdir()は、このファイルで表されるディレクトリを作成します
- public boolean mkdirs()は、このファイルで表されるディレクトリを作成します。必要だが存在しない親ディレクトリを含みます
注:
createNewFile()パスが存在しない場合、IOExeception例外がスローされます。delete
()ファイル/フォルダーが正常に削除された場合、trueが返されます。フォルダーにコンテンツがある場合、コンテンツは削除されず、falseが返されます。パスがコンストラクターに存在しない場合、falseが返されます。
トラバースフォルダー
- public String [] list()は、Fileディレクトリ内のすべてのサブファイルまたはディレクトリを表すString配列を返します
- puublic File [] listFiles()は、ファイルディレクトリ内のすべてのサブファイルまたはディレクトリを表すファイル配列を返します
File file = new File("G:\\");
String[] list = file.list();
for (String s : list) {
System.out.println(s + ",");
}
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1.getPath() + "\n");
}
両方とも、印刷パスの下(サブパスを除く現在のパスの直下)のすべてのファイルまたはフォルダー、およびすべての隠しファイルです。