1.Fileクラスの基本的な使い方
java.io.Fileクラス:ファイルやディレクトリの代表。開発では、多くの場合、ときに、ファイルこのクラスのプロパティを変更するために使用されるファイル、生成されたファイル、削除ファイルを、お読みください。
共通のファイルクラスのコンストラクタ:public File(String pathname)
代表パス名、ファイルパスは、パスは、相対パスまたは絶対パスであってもよいです。パス名が相対パスである場合は、デフォルトの属性は、現在はuser.dirでシステムパスに保存されています。
[例]はそれぞれ、ファイルオブジェクトの相対および絶対パスを作成します
public static void main(String[] args) throws IOException {
// 获取当前工作目录路径
System.out.println(System.getProperty("user.dir"));
// 1.相对路径创建File对象:默认放到user.dir目录下面
File file1 = new File("abc.txt");
// 创建文件
file1.createNewFile();
// 2.绝对路径创建File对象
File file2 = new File("D:/abc.txt");
// 创建文件
file2.createNewFile();
}
Eclipseプロジェクトの開発では、はuser.dirは、プロジェクトのディレクトリです。そのため、実装後に、このプロジェクトとDドライブの下に新しいファイルを生成します(それが日食の下にある場合、ディレクトリ構造は、新しいファイルを参照するために更新するにはF5キーを押す必要があります)。図に示すように:
Fileクラスの他の施工方法を、次の表を確認してください。
コンストラクタ | 説明 |
---|---|
公共ファイル(文字列のパス名) | 抽象パス名に指定したパス名文字列を変換して、新しいFileのインスタンスを作成するには |
公共ファイル(ファイルの親、文字列の子) | 親抽象パス名および子パス名文字列から新しいFileのインスタンスを作成します。 |
公共ファイル(文字列の親、文字列の子) | 親パス名文字列および子パス名文字列から新しいFileのインスタンスを作成します。 |
2.Fileクラス取得機能
メソッド名 | 説明 |
---|---|
公共の文字列のgetName() | これ抽象パス名が示すファイルまたはディレクトリの名前を返します。 |
公共の文字列のある、getPath() | この抽象パス名(絶対または相対パス)の絶対形式を返し。 |
公共のString getAbsolutePath() | この抽象パス名(絶対パス)の絶対形式を返します。 |
公共 長い LASTMODIFIED() | ファイルの抽象パス名が最後に変更された返します。 |
公共 長い長さ() | 抽象パス名は、これにより、ファイルの長さを返します。 |
[例] Fileクラスの基本的な取得機能
// 1.相对路径创建File对象
File file = new File("abc.txt");
// 2.获取文件或目录名字
System.out.println(file.getName());
// 3.返回此抽象路径名的绝对形式(绝对路径或相对路径)。
System.out.println(file.getPath());
// 4.返回此抽象路径名的绝对形式(绝对路径)。
System.out.println(file.getAbsolutePath());
// 5.返回此抽象路径名表示的文件最后一次被修改的时间
System.out.println(file.lastModified());
// 6.返回由此抽象路径名表示的文件的长度。
Sstem.out.println(file.length());
クラス判定機能3.File
メソッド名 | 説明 |
---|---|
パブリック ブールは、(存在) | ファイルまたはディレクトリがこの抽象パス名が存在してテストします。 |
パブリック ブール isDirectory() | ファイルのこの抽象パス名がディレクトリであるかどうかをテストします。 |
パブリック ブール ISFILE() | 表されるファイルのこの抽象パス名が標準のファイルであるかどうかをテストします。 |
パブリック ブール isHidden() | ファイルのこの抽象パス名が隠しファイルであるかどうかをテストします。 |
パブリック ブール canRead() | アプリケーションがファイルのこの抽象パス名を読み取ることができるかどうかをテストします。 |
cyhoedd ブール canWrite() | アプリケーションが表されるファイルのこの抽象パス名を変更することができるかどうかをテストします。 |
機能ケースを決定するために、[例] Fileクラス
// 1.相对路径创建File对象
File file = new File("abc.txt");
// 2.测试此抽象路径名表示的文件或目录是否存在。
System.out.println(file.exists());
// 3.测试此抽象路径名表示的文件是否是一个目录。
System.out.println(file.isDirectory());
// 4.测试此抽象路径名表示的文件是否是一个标准文件。
System.out.println(file.isFile());
// 5.测试此抽象路径名指定的文件是否是一个隐藏文件。
System.out.println(file.isHidden());
// 6.测试应用程序是否可以读取此抽象路径名表示的文件。
System.out.println(file.canRead());
// 7.测试应用程序是否可以修改此抽象路径名表示的文件。
System.out.println(file.canWrite());
4.Fileなどのその他の機能
メソッド名 | 説明 |
---|---|
パブリック ブール MKDIR() | この抽象パス名指定されたディレクトリを作成します。 |
パブリック ブール mkdirs() | 必要だが、存在しない親ディレクトリを含むディレクトリのこの抽象パス名を、作成します。 |
パブリック ブールでCreateNewFile() | この抽象パス名指定した名前のファイルが存在しない場合にのみ場合は、不可分新しい空のファイルを作成します。 |
パブリック ブール(削除) | ファイルまたはディレクトリのこの抽象パス名を削除します。 |
パブリック ブール renameTo(ファイル) | 表されるファイルのこの抽象パス名の名前を変更します。 |
公共のString []リスト() | 文字列の配列を返し、これらの文字列は、ファイルやディレクトリのディレクトリ表現のこの抽象パス名を指定します。 |
公共ファイル[] LISTFILES() | この抽象パス名のファイルパス名のディレクトリが表されていることを示している、抽象パス名の配列を返します。 |
[実施例]の場合のようなファイルの他の一般的な機能を
public static void main(String[] args) throws IOException {
// 1.mkdir方法使用(G盘下没有demo文件夹)
File file1 = new File("G:/demo");
if(!file1.exists()) { // 判断文件夹是够存在
file1.mkdir(); // 不存在则创建一个文件夹
}
// 2.mkdirs方法使用(G盘下没有java和demo文件夹)
File file2 = new File("G:/java/demo");
if(!file2.exists()) { // 判断文件夹是够存在
file2.mkdirs(); // 不存在则创建多个文件夹
}
// 3.createNewFile方法使用(G盘下没有abc.txt文件)
File file3 = new File("G:/abc.txt");
if(!file3.exists()) { // 判断文件是够存在
file3.createNewFile(); // 不存在则创建该文件
}
// 4.delete方法,删除文件或文件夹
file1.delete(); // 删除文件文件夹
file3.delete(); // 删除文件
// 5.renameTo方法,文件重命名
file3.renameTo(new File("G:/haha.txt"));
// 6.list方法,遍历文件和文件夹
File file4 = new File("G:");
for(String path : file4.list()) {
System.out.println(path);
}
// 7.listFiles方法,遍历目录中的文件
for(File file : file4.listFiles()) {
System.out.println(file);
}
}
5.Fileクラスフィルタ
LISTFILES()メソッドによって、我々は、ディレクトリ内のすべてのファイルとフォルダを取得することができますが、それはフィルタリングすることができないのですか?例えば、我々は唯一のファイル特定のキーワードを含むファイルを指定したディレクトリの下の延長、またはフォルダをしたいですか?
私たちは、トラバース、取得するためにディレクトリ内のすべてのファイルとフォルダを入れて、すべてのコンテンツトラバース電流を得ることができます
スクリーニングプロセスの間に、しかし、アクション少しトラブル、Javaはこの問題を解決するための適切な機能を提供してくれます。
今、FileクラスのAPIは、Fileクラス発見法LISTFILESは過負荷にチェックし、指定したフィルタを受け入れます。
[例]拡張子の.javaを持つすべてのファイルを取得します
//自定类继承 FilenameFilter过滤器接口
class MyFilenameFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
}
// 测试类
public class FileDemo {
// 获取扩展名为.java所有文件
public static void main(String[] args) {
// 创建 File 对象
File file = new File("C:\\Users\\Administrator\\Desktop\\Java");
// 获取指定扩展名的文件
File[] files = file.listFiles(new MyFilenameFilter());
// 遍历获取到的所有符合条件的文件
for (File f : files) {
System.out.println(f.getName());
}
}
}
APIの確認、我々は(FileFilterのフィルタ)LISTFILESで、それを発見したことも、FileFilterのフィルタ、それを受け入れることができ、どのような違い、それが作るんので、我々はFilenameFilterについて話していますか?
メソッドFilenameFilterフィルタを受け入れる二つのパラメータ、ファイルまたはフォルダへの電流経路が配置されて、現在のファイルまたはフォルダのオブジェクトの名前を受け付けます。
パラメータを受け入れるメソッドのFileFilterのフィルタを受け入れ、このパラメータは、現在のファイルまたはフォルダオブジェクトです。
私たちは、ファイル名をフィルタリングする必要がある場合、我々は現在のファイルまたはファイルを考えるとき、あなたは、このフィルタFilenameFilterを使用することができます
フィルタフォルダ、あなたがそのようなディレクトリのフォルダ内のすべてのファイルの現在のニーズとして、FileFilterのを使用することができ、あなたは、FileFilterのフィルタを使用することができます。
[例]指定されたディレクトリ内のファイルを取得します
//自定类继承 FileFilter过滤器接口
class MyFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
return pathname.isFile();
}
}
// 测试类
public class FileDemo {
// 获取指定目录下的文件(排除文件夹)
public static void main(String[] args) {
// 创建 File 对象
File file = new File("C:\\Users\\Administrator\\Desktop\\Java");
// 获取指定目录下的文件
File[] files = file.listFiles(new MyFileFilter());
// 遍历获取到的所有符合条件的文件
for (File f : files) {
System.out.println(f.getName());
}
}
}
PS:最新の無料のマニュアルと教育ビデオの場合は、QQグループ(627407545)を追加してください受けます。