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