IOストリームファイルフォルダの2

最初の図は、指定されたディレクトリ内のフォルダやファイルの名前が表示されます。

第2のマップは、指定されたディレクトリ内のファイルを取得します。ファイルのファイル[] = dir.listfile();

 

 

 

 

完全なファイルオブジェクトの確立後、最高裁判官のファイルやフォルダが存在するローカルまたはサーバー上にあります。そこに作成された場合。次のステップを提示。ファイルやフォルダを追加および削除の違いを変更するために操作することができます。

フィルタの2 Fileクラスの種類。

目的は、私は、ローカルサーバー上の特定のパスに乗るか、私は、ファイルやフォルダをしたいものだけをフィルタリングすることです。例えば、カタログは、私はちょうどサフィックス.javaファイルを選択します。javaIoは我々だけで、それはOKです実現する必要があるFilenameFilterフィルタ、インタフェースを持っています。

(1)完全なリストについて

使用時には、Fileオブジェクトが引数なしリスト()メソッドを呼び出すために、我々は、オブジェクトが含まれているファイルのすべてのリストを取得します。
例えば、
フィールド・リスト(1)文字列[] = File.List();
(2)[] =フィールド・リストFile.listFiles()ファイル、
これらの二つの方法は、ファイルの下にあるすべてのファイルまたはディレクトリを返します。

(2)制限リストを取得し
ますが、時には我々はすべてのリストを取得する必要がありますする必要はありません、私たちは制限リストを取得したいです。たとえば、私たちはすべての.java拡張子のファイルをしたい、このケースでは、我々はFilenameFilterを使用する必要があります。
次のように呼び出し
(1)文字列[] FS = f.list(FilenameFilterフィルタ);
(2)[]のFS =のf.listFiles(FilenameFilterフィルタ)ファイル。

其中java.io.FilenameFilter是文件名过滤器,作为list()过滤的标准。list()方法中传入FilenameFilter实例,list方法就可以根据FilenameFilter实例中的accept()方法作为过滤的依据。来过滤不符合规格的文件名,留下合格的文件。可以看list()的源码来详细了解调用accpet()方法的过程。

list(FilenameFilter filter)源码:

public String[] list(FilenameFilter filter) {
String names[] = list();
if ((names == null) || (filter == null)) {
return names;
}
List<String> v = new ArrayList<>();
for (int i = 0 ; i < names.length ; i++) {
if (filter.accept(this, names[i])) {/*this代表调用当前方法的对象*/
v.add(names[i]);
}
}
return v.toArray(new String[v.size()]);
}
可以看到,list(FilenameFilter filter)这个方法,还是先调用无参的list()方法,获取所有的列表,然后再调用FilenameFilter接口实例的accept()方法进行过滤,将符合条件的加入到List集合中,最后把List集合转为String数组返回。

 

 

 

おすすめ

転載: www.cnblogs.com/xlp123456/p/11121245.html