【】JavaのIO(1) - 类ファイル
Javaでは、Fileクラスjava.ioパッケージには、専用のディスクファイル自体をマッピングする対象です。Fileクラスは(など、パス、アクセス、変更日時、ファイル名を参照してください)ファイルに関する情報を入手することができますが、Fileクラスから情報を読み取り、ファイル内のファイルに情報を書き込むことはできません。
1. 3つのファイルクラスのコンストラクタ
1つの // ファイル(ファイルの親、文字列の子が):親抽象パス名および子パス名文字列から新しいFileのインスタンスを生成します。 2ファイルの親= 新しい新しいファイル( "E:\\テスト" ); 3。ファイル子供= 新しい新ファイル(親、 "demo.txt" ); 4。 5。 // ファイル(文字列のパス名):パス名の文字列によって与えられます新しいFileのインスタンスを作成するために抽象パス名に変換します。与えられた文字列がnull文字列の場合、結果は空の抽象パス名です。 6ファイルファイル= 新しい新しいファイル(「E:\\ \\ demo.txtテスト」); 7 8 // ファイル(文字列の親、文字列の子が):親のパス名文字列および子パス名文字列から新しいファイルを作成します。インスタンス。 9列親= "E:\\ \\試験" ; 10列=子"demo.txt"11ファイルファイル= 新しいファイル(親、子)。
注:このようEなど、Windowsオペレーティングシステムのパス、:\デモ\ hello.java、Javaプログラムでは、そのパスは次のように書かれているE:/demo/hello.javaまたはE:\\デモ\\ hello.java
主な機能2. Fileクラス
(1)ファイルの属性を取得します
1 インポートjava.io.Fileの; 2 インポートjava.util.Date; 3。 4つの。 パブリック クラスFile_test { 5。 公共 静的 ボイドメイン(文字列[]引数){ 6。 ファイルF = 新しい新しいファイル(「E:\\ \\ハローテスト.DOC "); // 抽象パス名" E:\\テスト\\ hello.doc " 7 のSystem.out.println("ファイルEを取得:\\情報のテスト\\ hello.docを: " ); 8 System.out.println( "-------------------------------" ); 9 のSystem.out.println(「ファイル長さ: "+ f.length()+"バイト" ); 10 System.out.println( "Fileオブジェクトの判断ファイルではありません:" +(f.isFileは() "ファイルである" :? "ファイルではありません" )); 11 のSystem.out.println(「Fileオブジェクトは裁判官ではありませんディレクトリ: "+(f.isDirectory()? " ディレクトリ":"ではないディレクトリ" )); 12 のSystem.out.println("読みやすいです: "+(f.canRead()? " 「読むことができます。 "読めない" )); 13 のSystem.out.println( "書くことができる:" +(f.canWrite() "を書き込むことができる" :? "書き込み" )); 14 のSystem.out.println( "非表示にするかどうか:" +(f.isHiddenが()? " 隠しファイルである": "いいえ隠しファイル" )); 15 のSystem.out.println( "最終更新:" + 新しい新しい日付(f.lastModified()) ); 16 のSystem.out.println( "ファイル名: "+ f.getName()); 17。 のSystem.out.println("親ファイルのパス:「+ f.getParent()); 18である のSystem.out.println( "パス名文字列に抽象パス名:" + f.getPath()); //等価f.toString() 。19 のSystem.out.println(「抽象パス名かどうかを判断します絶対パス: "+(f.isAbsoluteが()? " 絶対パスが":"絶対パスではない" )); 20 のSystem.out.println("絶対ファイルパス:「+ f.getAbsolutePath()); 21 システム.out.println( "-------------------------------" ); 22である } 23です }
業績
ファイルEを取得:情報の\テスト\のhello.doc: ------------------------------- ファイルの長さ:9216のバイトを ファイル:ファイルオブジェクトがファイルではないかどうかを判断する ファイルオブジェクトを決定するためには、ディレクトリではありません:ないディレクトリが 読み取り可能である:読むためには、 書き込み可能である:書き込み可能で ある隠された:隠されたファイルはありません 月7月:最終更新日 01夜9時20 :47 CST 2019 ファイル名:hello.doc ファイルの親パス:E:\テスト E:抽象パス名のパス名文字列に\テスト\のhello.doc 絶対パス:抽象パス名が絶対パスであるかどうかを判断する 絶対ファイルパス:E:テストの\ hello.doc \ -------------------------------
ブールます。またsetReadOnlyパブリック() :読み出しのみ可能なファイルを設定し、書きません。
1 公共 静的 ボイドメイン(文字列[]引数)を{ 2 ファイルF = 新しい新しいファイル( "E:\\試験\\ hello.doc"); // 抽象パス名「E:\\試験\\ hello.doc " 3 f.setReadOnly(); 4。 のSystem.out.println("読み取り可能である: "+(f.canRead()? " 可読":" "読めない)); 図5 のSystem.out.println( "書くことができる:" +(f.canWrite() "を書き込むことができる" :? "書き込み" )); 6 }
業績
それは読みやすいです:読みは
書き込み可能です。書き込み不可
(2)ディレクトリを作成および削除ファイルを、作成および削除、ディレクトリトラバーサルのリスト()、リスト()
文字列は、[]リスト() :このメソッドは文字列の配列を返す呼び出しはnullが返されているディレクトリのFileオブジェクトでない場合は、すべてのディレクトリ内のファイルとファイルオブジェクトからなるサブディレクトリ名を表します。
ヒント:リスト()メソッドは、配列は、ファイル名のみが含まれ、パスが含まれていませんが返されます。しかし、それは結果の配列内の同じ文字列を保証するものではありません、彼らはアルファベット順に表示されていること、特に、特定の順序で表示されます。
1 パッケージtest0607; 2 。3 インポートjava.io.Fileの; 4 インポートにjava.io.IOException; 5 インポートjava.util.Date; 6 。7 パブリック クラスFile_test { 8 パブリック 静的 ボイドメイン(文字列[]引数)がスローIOExceptionが{ 9。 NFの=ファイルの新しい新しいファイル( "E:/test/new_file.docを"); //は、ファイルEへのリンクを作成します。/test/new_file.docファイルオブジェクト 10 IF(nf.exists())// ファイルが存在するかどうかを判断します 11 { 12 nf.delete(); //は削除存在する 13 } 14 nf.createNewFile(); // ファイルを再作成する 15 16 ファイルDIR = 新しい新しいファイル( "E:/ TEST01"); // ディレクトリのEへのリンクを作成します。 / TEST01ファイルオブジェクト 17 のiF(dir.exists())// ディレクトリが存在するか否かを判断 18である { 19 ; dir.delete()//は削除存在する 20ことである } 21で dir.mkdir(); //は次に作成ディレクトリ 22は、 23ある ファイルLFは= 新しい新しいファイル( "E:/テスト/"); // ); 30 System.out.printlnは(のfileList [I]); 31はある // 文字列のリストは、()メソッドは、ファイルの名前は、ファイルの種類とサイズを取得するためにして、そのメソッドを呼び出すFileオブジェクトに変換する必要があり、のみが含ま返すので。 32 } 33である のSystem.out.println( "------------------------------" ); 34である } 35 }
業績
ファイル名ファイルの種類サイズ ---------------------------------- フォルダdir01 0バイトの フォルダワード0セクションのdir02 ファイルgood.bmp 0バイト のファイルhello.doc 9216バイト のファイルhi.txt 0バイト のファイルのバイト0 new_file.doc -------------------- --------------
String []型のリスト(FilenameFilterフィルター):メソッドリスト()メソッドと同じ効果、配列が返されたことを除いては、フィルタがnullの場合は、すべての名前を受け入れる、ファイルのみフィルタに沿ってフィルタのディレクトリが含まれています。
最初の作成、ファイルフィルタを、フィルタが実装しなければならない java.io.FilenameFilter
インターフェイスを、指定したファイルの種類()メソッドを受け入れることができます。
1 インポートjava.io.Fileの; 2 インポートjava.io.FilenameFilter; 3 インポートにjava.io.IOException; 4 インポートjava.util.Date; 5 6。 クラス DocFilter 実装FilenameFilter 7。 { 8。 // FilenameFilterインターフェースを実装 9。 @Override 10 パブリック ブール受け入れ(DIR、文字列のファイル名) 。11 { 12は // 指定許可文書タイプ 13は、 戻り name.endsWith || name.endsWith( "TXT"を)( "BMP" ); 14 } 15 } 16 。17の 公共 クラスFile_test03 { 18は パブリック 静的 ボイドメイン(文字列[]引数)スローにIOException { 19 =ファイルLF 新しい新しいファイル( "E:/テスト/"); // ファイル・オブジェクトの作成を横断する必要が 20である のSystem.out .println( "ファイルの種類\ tのファイルサイズ\ tのファイル名" ); 21 のSystem.out.println(「------------------------- ----- " ); 22である 文字列のfileList [] = lf.list(新しい新しい DocFilter()); // パラメータなし()メソッドをコールリスト 23がある ため(INT0 = Iであり; IはfileList.lengthを<; Iは++){ // 反復リターン文字列 24 System.out.printの((新しい新しいファイル( "E:/テスト/"のfileList [I]))ISFILE()。? "ファイル" + "\ T": "\ Tを" + "フォルダ" ); 25 System.out.printの((新しい新しいファイル( "E:/テスト/"のfileList [I]))の長さ()+。 「バイト」+「\ T」); 26はある のSystem.out.println(のfileList [I]); 27 // ために、ファイルの種類とサイズを取得するので、リスト以来()メソッドは、ファイル名のみを含む文字列を返します。ファイルには、オブジェクトに変換して、そのメソッドを呼び出すする必要があります。 28 } 29 のSystem.out.println( "------------------------------" )。
業績
ファイル名ファイルの種類サイズ ------------------------------ ファイルgood.bmp 0バイト のファイルのバイト0 hi.txt ------------------------------