Trieda Java.io.File v jazyku Java

Trieda Java File je reprezentáciou Java súboru alebo názvu cesty k adresáru. Pretože názvy súborov a adresárov majú na rôznych platformách rôzne formáty, na ich pomenovanie nestačí jednoduchý reťazec. Trieda Java File obsahuje niekoľko metód na prácu s názvom cesty, mazanie a premenovávanie súborov, vytváranie nových adresárov, vypisovanie obsahu adresára a určovanie niekoľkých spoločných atribútov súborov a adresárov.

  • Je to abstraktná reprezentácia súborov a názvov adresárov.
  • Názov cesty, či už abstraktný alebo vo forme reťazca, môže byť absolútny alebo relatívny. Rodiča abstraktného názvu cesty možno získať vyvolaním metódy getParent() tejto triedy.
  • Najprv by sme mali vytvoriť objekt triedy File odovzdaním názvu súboru alebo adresára. Súborový systém môže implementovať obmedzenia na určité operácie so skutočným objektom súborového systému, ako je čítanie, zápis a vykonávanie. Tieto obmedzenia sú súhrnne známe ako prístupové povolenia.
  • Inštancie triedy File sú nemenné; to znamená, že po vytvorení sa abstraktná cesta reprezentovaná objektom File nikdy nezmení.

Ako vytvoriť objekt súboru?

Objekt File sa vytvorí vložením reťazca, ktorý predstavuje názov súboru, reťazca alebo iného objektu File. Napríklad,

File a = new File('/usr/local/bin/geeks'); 

Toto definuje abstraktný názov súboru pre súbor geeks v adresári /usr/local/bin. Toto je absolútny abstraktný názov súboru.

Polia v triede súboru v jazyku Java

Lúka

Typ

Popis

pathSeperator Reťazec znak alebo reťazec používaný na oddelenie jednotlivých ciest v zozname ciest súborového systému.
pathSeperatorChar Char znak používaný na oddelenie jednotlivých ciest v zozname ciest súborového systému.
oddeľovač Reťazec predvolený znak oddeľovača názvu reprezentovaný ako reťazec.
separatorChar Char predvolený znak oddeľovača názvu.

Konštruktory triedy Java File Class

    File(File parent, String child): Vytvorí novú inštanciu súboru z rodičovského abstraktného názvu cesty a podradeného reťazca cesty. File(String pathname): Vytvorí novú inštanciu súboru konverziou daného reťazca názvu cesty na abstraktný názov cesty. File(String parent, String child): Vytvorí novú inštanciu súboru z nadradeného reťazca názvu cesty a podradeného reťazca názvu cesty. File(URI uri): Vytvorí novú inštanciu súboru konverziou daného súboru: URI na abstraktný názov cesty.

Metódy triedy súborov v jazyku Java

Áno nie. Metóda Popis Typ návratu
1. canExecute() Testuje, či aplikácia môže spustiť súbor označený týmto abstraktným názvom cesty. boolovská hodnota
2. canRead() Testuje, či aplikácia dokáže čítať súbor označený týmto abstraktným názvom cesty. boolovská hodnota
3. canWrite() Testuje, či aplikácia môže upraviť súbor označený týmto abstraktným názvom cesty. boolovská hodnota
4. porovnať s (cestou k súboru) Lexikograficky porovnáva dve abstraktné názvy ciest. int
5. createNewFile() Atomicky vytvorí nový, prázdny súbor pomenovaný týmto abstraktným názvom cesty. boolovská hodnota
6. createTempFile(predpona reťazca, prípona reťazca) Vytvorí prázdny súbor v predvolenom adresári dočasných súborov. Súbor
7. vymazať () Vymaže súbor alebo adresár označený týmto abstraktným názvom cesty. boolovská hodnota
8. rovná sa (objekt objektu) Testuje túto abstraktnú cestu na zhodnosť s daným objektom. boolovská hodnota
9. existuje() Testuje, či súbor alebo adresár označený týmto abstraktným názvom cesty existuje. boolovská hodnota
10. getAbsolutePath() Vráti absolútny reťazec názvu tejto abstraktnej cesty. Reťazec
jedenásť. zoznam() Vráti pole reťazcov pomenúvajúcich súbory a adresáre v adresári. Reťazec[]
12. getFreeSpace() Vráti počet nepridelených bajtov v oblasti. dlhý
13. getName() Vráti názov súboru alebo adresára označený týmto abstraktným názvom cesty. Reťazec
14. getParent() Vráti reťazec názvu cesty rodiča tohto abstraktného názvu cesty. Reťazec
pätnásť. getParentFile() Vráti abstraktnú cestu rodiča tejto abstraktnej cesty. Súbor
16. getPath() Skonvertuje tento abstraktný názov cesty na reťazec názvu cesty. Reťazec
17. setReadOnly() Označí súbor alebo adresár pomenovaný tak, že sú povolené iba operácie čítania. boolovská hodnota
18. isDirectory() Testuje, či súbor označený týmto názvom cesty je adresár. boolovská hodnota
19. isFile() Testuje, či súbor označený týmto abstraktným názvom cesty je normálny súbor. boolovská hodnota
dvadsať. isHidden() Testuje, či súbor pomenovaný týmto abstraktným názvom cesty je skrytý súbor. boolovská hodnota
dvadsaťjeden. dĺžka () Vráti dĺžku súboru označenú týmto abstraktným názvom cesty. dlhý
22. listFiles() Vráti pole abstraktných názvov ciest označujúcich súbory v adresári. súbor[]
23. mkdir() Vytvorí adresár pomenovaný týmto abstraktným názvom cesty. boolovská hodnota
24. premenovať na (cieľ súboru) Premenuje súbor označený týmto abstraktným názvom cesty. boolovská hodnota
25. setExecutable (boolovský spustiteľný súbor) Pohodlná metóda na nastavenie povolenia vlastníka na vykonanie. boolovská hodnota
26. setReadable (boolovské čitateľné) Pohodlná metóda na nastavenie povolenia vlastníka na čítanie. boolovská hodnota
27. setReadable (boolovské čitateľné, boolovské iba vlastníka) Nastavuje povolenie na čítanie vlastníka alebo každého. boolovská hodnota
28. setWritable (booleovský zapisovateľný) Pohodlná metóda na nastavenie povolenia vlastníka na zápis. boolovská hodnota
29. natiahnuť() Vráti reťazec názvu cesty tohto abstraktného názvu cesty. Reťazec
30. toURI() Vytvorí súbor URI, ktorý predstavuje tento abstraktný názov cesty. TYP

Príklady tried súborov Java

Príklad 1: Program na kontrolu, či súbor alebo adresár fyzicky existuje alebo nie.

Java




// In this Java program, we accepts a file or directory name> // from command line arguments. Then the program will check> // if that file or directory physically exist or not and it> // displays the property of that file or directory.> import> java.io.File;> // Displaying file property> class> fileProperty {> > public> static> void> main(String[] args)> > {> > // accept file name or directory name through> > // command line args> > String fname = args[> 0> ];> > // pass the filename or directory name to File> > // object> > File f => new> File(fname);> > // apply File class methods on File object> > System.out.println(> 'File name :'> + f.getName());> > System.out.println(> 'Path: '> + f.getPath());> > System.out.println(> 'Absolute path:'> > + f.getAbsolutePath());> > System.out.println(> 'Parent:'> + f.getParent());> > System.out.println(> 'Exists :'> + f.exists());> > if> (f.exists()) {> > System.out.println(> 'Is writable:'> > + f.canWrite());> > System.out.println(> 'Is readable'> + f.canRead());> > System.out.println(> 'Is a directory:'> > + f.isDirectory());> > System.out.println(> 'File Size in bytes '> > + f.length());> > }> > }> }>

Výkon

File name :file.txt Path: file.txt Absolute path:C:UsersakkiIdeaProjectscodewritingsrcfile.txt Parent:null Exists :true Is writable:true Is readabletrue Is a directory:false File Size in bytes 20 

Príklad 2: Program na zobrazenie celého obsahu adresára

Tu prijmeme názov adresára z klávesnice a následne zobrazíme celý obsah adresára. Na tento účel možno použiť metódu list() ako:

String arr[]=f.list(); 

V predchádzajúcom príkaze spôsobí metóda list() skopírovanie všetkých položiek adresára do poľa arr[] . Potom odovzdajte tieto prvky poľa arr[i] objektu File a otestujte ich, aby ste vedeli, či predstavujú súbor alebo adresár.

Java




// Java Program to display all> // the contents of a directory> import> java.io.BufferedReader;> import> java.io.File;> import> java.io.IOException;> import> java.io.InputStreamReader;> // Displaying the contents of a directory> class> Contents {> > public> static> void> main(String[] args)> > throws> IOException> > {> > // enter the path and dirname from keyboard> > BufferedReader br => new> BufferedReader(> > new> InputStreamReader(System.in));> > System.out.println(> 'Enter dirpath:'> );> > String dirpath = br.readLine();> > System.out.println(> 'Enter the dirname'> );> > String dname = br.readLine();> > // create File object with dirpath and dname> > File f => new> File(dirpath, dname);> > // if directory exists,then> > if> (f.exists()) {> > // get the contents into arr[]> > // now arr[i] represent either a File or> > // Directory> > String arr[] = f.list();> > // find no. of entries in the directory> > int> n = arr.length;> > // displaying the entries> > for> (> int> i => 0> ; i System.out.println(arr[i]); // create File object with the entry and // test if it is a file or directory File f1 = new File(arr[i]); if (f1.isFile()) System.out.println(': is a file'); if (f1.isDirectory()) System.out.println(': is a directory'); } System.out.println( 'No of entries in this directory ' + n); } else System.out.println('Directory not found'); } }>

Výkon

Enter dirpath: C:UsersakkiIdeaProjects Enter the dirname codewriting .idea : is a directory an1.txt : is a file codewriting.iml : is a file file.txt : is a file out : is a directory src : is a directory text : is a file No of entries in this directory 7 

Súvisiaci príspevok: FileReader a FileWriter v jazyku Java