ファイルの概要
java.io.File クラス: ファイルとディレクトリのパス名の抽象表現。
コンピューター内のファイル、フォルダー、およびパスを説明するために使用されます
ファイルに関連してよく使用される 3 つの単語:
ファイル: ファイル
ディレクトリ: フォルダー (ディレクトリ)
パス: パス
ファイルはシステムに関連するファイルです 無関係なクラス
File クラスの 3 つのオーバーロードされた構築メソッド
Path:
ウィンドウ システムのディレクトリ区切り文字は 1 つです
Java のディレクトリ区切り文字は次のとおりです: \ または /
パスの分類:
絶対パス : で始まるパスドライブ文字
例: D:\ase\20170514\day10
D:\Work_EE_266\day10\src
相対パス: 現在のプロジェクトを基準として、プロジェクト間のパスにパスを書き込むときにドライブ文字を省略できます
D:\Work_EE_266\day10-->src
注: Lu Jin は大文字と小文字を区別しません
File(ファイルの親、文字列の子)
パス、パス ファイルの種類の親パス、文字列の種類のサブパス
利点: 親のパスは File 型であり、親パスは File クラスのメソッドを直接呼び出すことができます
File(Stringparent, String child)
パスを渡し、文字列型の親パスと文字列型の子パスを渡します
利点: 分離する親パスとサブパスをより柔軟に操作できます。パスをパラメーターとして個別に渡すことができます
File(String pathname)
パス名を渡す: フォルダーまたはファイルに書き込むことができます
c:\abc c: \abc \Demo.java
パスは大文字と小文字を区別せずに作成できます
1 public static void main(String[] args) { 2 /* 3 * static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 4 * static char pathSeparatorChar 与系统有关的路径分隔符。 5 * static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 6 * static char separatorChar 与系统有关的默认名称分隔符。 7 */ 8 String pathSeparator = File.pathSeparator; 9 System.out.println(pathSeparator);//路径分隔符 windows 分号; linux 冒号:10 11 String separator = File.separator;12 System.out.println(separator);//目录名称分隔符windows 反斜杠\ linux 正斜杠/13 14 /*15 * System类中的方法16 * static String getProperty(String key) 获取指定键指示的系统属性。 17 * file.separator 文件分隔符(在 UNIX 系统中是“/”) 18 * path.separator 路径分隔符(在 UNIX 系统中是“:”) 19 * line.separator 行分隔符(在 UNIX 系统中是“/n”) 20 */21 System.out.println(System.getProperty("file.separator"));22 System.out.println(System.getProperty("line.separator"));23 System.out.println(System.getProperty("path.separator"));24 }
ファイルクラス作成・削除関数
ファイルクラス削除関数
boolean delete()
Deleteファイルまたはフォルダー、File 構築メソッドで指定されます
削除が成功した場合は true を返し、削除が失敗した場合は false を返します (フォルダーが存在せず、フォルダーにコンテンツが存在します)
削除メソッドはごみ箱には移動せず、フォルダーから直接削除しますハードディスク
削除には危険が伴いますので、慎重に操作してください
ファイル作成フォルダー関数
boolean mkdir()は単層フォルダーしか作成できません
boolean mkdirs()は単層フォルダーと多層フォルダーの両方を作成できます
File構築メソッドOutにも作成されたパスが与えられます
フォルダーが既に存在する場合は作成されません
ファイルを作成するFile関数
boolean createNewFile()
作成されたファイルパスとファイル名が与えられますFile コンストラクター内で
ファイルが既に存在する場合、ファイルは作成されず false が返されます
作成できるのはファイルのみであり、フォルダーは作成できません (タイプを確認し、サフィックスは確認しないでください)
フォルダーを作成するパスは必ず指定してください存在する
Fileクラスの判定関数
boolean isDirectory()
構築メソッドでカプセル化されたファイルがフォルダかどうかを判定
フォルダであればtrueを返し、フォルダでなければfalseを返す
boolean isFile()
File 構築メソッドでカプセル化されたパスがファイルであるかどうかを判断します
boolean selected()
File 構築メソッドでカプセル化されたパスがファイルであるかどうかを判断します パスが存在するかどうか
存在する場合は true を返します存在しない場合は false を返します
long length()
パスで表されるファイルのバイト数を返します。フォルダーにはサイズはありません
String getPath() この抽象パス名をパス名文字列に変換します。
toString と同じ
String getName()
パスで表されるファイル名またはフォルダー名を返します。
パスの最後の部分の名前を取得します。
File getAbsoluteFile() この抽象パス名の絶対パス名形式を返します。
String getAbsolutePath() この抽象パス名の絶対パス名文字列を返します。
絶対パスを取得します
ディレクトリ list と listFiles を走査するためのメソッド
注:
1. 走査されるパスは 1 つのディレクトリのみです
2. 走査されるディレクトリは存在する必要があります それ以外の場合は、null ポインタ例外がスローされます
static File[] listRoots()
システム内のすべてのルート ディレクトリを取得します
File[] listFiles()
File 構築メソッドでカプセル化されたパス内のファイル名とフォルダー名を取得します (ディレクトリをトラバースします)
ディレクトリを返します またはファイルのフルパス
String[] list()
File構築メソッドでカプセル化されたパス内のファイル名とフォルダー名を取得します(ディレクトリをトラバースします)
名前のみが返されます
Recursion
Recursion:メソッドそれ自体 自分自身を呼び出します
カテゴリ: 再帰は、直接再帰と間接再帰の 2 つのタイプに分けられます。
直接再帰は、メソッド自体がそれ自体を呼び出すことと呼ばれます。間接再帰では、メソッド A がメソッド B を呼び出し、メソッド B がメソッド C を呼び出し、メソッド C がメソッド A を呼び出すことができます。
注:
1. 再帰を確実に停止できるようにするには、再帰を条件付きで制限する必要があります。そうしないと、スタック メモリのオーバーフローが発生します。
2. 再帰には制限がありますが、再帰の数が多すぎることはできません。そうしないと、スタック メモリのオーバーフローも発生します。
3. 構築方法、再帰は禁止です
1 使用递归计算1-n之间的和 2 n + (n-1)+ (n-2)+(n-3)+...+1 3 5 +(5-1)+(4-1)+(3-1)+(2-1) 4 结束条件:n=1的时候结束 5 方法自己调用自己目的:获取n-1,获取到n=1的时候结束 6 public static int DGSum(int n){ 7 //添加结束条件 8 if(n==1){ 9 return 1;10 }11 return n+DGSum(n-1);12 } 13 14 使用递归计算阶乘15 private static long DGJC(int n) {16 //递归的结束条件 n==117 if(n==1){18 return 1;19 }20 return n*DGJC(n-1);21 }22 23 使用递归计算斐波那契数列 24 private static int fbnq(int month) {25 //结束条件如果month是1,2直接返回126 if(month==1 || month==2){27 return 1;28 }29 //3月以上:兔子数量是前两个月之和30 return fbnq(month-1)+fbnq(month-2);31 }
文件过滤器
文件的过滤器:
需求:遍历hello文件夹,只获取文件夹中的.java结尾的文件
c:\\hello
c:\\hello\\demo.txt
c:\\hello\\Hello.java
在File类中listFiles()方法是遍历文件夹的方法
有两个和 listFiles重载的方法,参数传递的就是过滤器
File[] listFiles(FileFilter filter)
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
发现方法的参数FileFilter和FilenameFilter是接口
所有我们需要自己定义接口的实现类,重写接口中的方法accept,实现过滤功能
1 public class FileFilterImpl implements FileFilter{ 2 /* 3 * 实现过滤的方法: 4 1.把传递过来的路径pathname,变成字符串 5 Stirng s = pathname.toString(); "c:\\hello\\demo.txt" 6 String s = pathname.getPaht(); "c:\\hello\\demo.txt" 7 String s = pathname.getName(); "demo.txt" 8 2.使用String类中的方法endsWith判断字符串是否以指定的字符串结尾 9 boolean b = s.endsWith(".java");10 return b;11 */12 @Override13 public boolean accept(File pathname) {14 /*String s = pathname.getName();15 boolean b = s.endsWith(".java");16 return b;*/17 return pathname.getName().toLowerCase().endsWith(".java");18 }19 }20 public class FilenameFilterImpl implements FilenameFilter{21 22 @Override23 public boolean accept(File dir, String name) {24 return name.toUpperCase().endsWith(".JAVA");25 }26 27 }
断点调试
debug断点调试
f6:逐行执行
f5:进入到方法中
f7:结束方法
f8:跳到下一个断点
watch:捕获
以上がファイルの概要と使用方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。