Klasa Java.io.File w Javie
Klasa Java File jest reprezentacją Java ścieżki pliku lub katalogu. Ponieważ nazwy plików i katalogów mają różne formaty na różnych platformach, do ich nazwania nie wystarczy zwykły ciąg znaków. Klasa Java File zawiera kilka metod pracy z nazwą ścieżki, usuwania i zmiany nazw plików, tworzenia nowych katalogów, wyświetlania zawartości katalogu i określania kilku typowych atrybutów plików i katalogów.
- Jest to abstrakcyjna reprezentacja nazw plików i katalogów.
- Nazwa ścieżki, abstrakcyjna lub w formie ciągu, może być bezwzględna lub względna. Rodzica abstrakcyjnej ścieżki można uzyskać wywołując metodę getParent() tej klasy.
- Na początek powinniśmy stworzyć obiekt klasy File przekazując mu nazwę pliku lub katalogu. System plików może implementować ograniczenia niektórych operacji na rzeczywistym obiekcie systemu plików, takich jak odczyt, zapis i wykonywanie. Ograniczenia te są zbiorczo nazywane uprawnieniami dostępu.
- Instancje klasy File są niezmienne; oznacza to, że po utworzeniu abstrakcyjna ścieżka ścieżki reprezentowana przez obiekt File nigdy się nie zmieni.
Jak utworzyć obiekt pliku?
Obiekt File jest tworzony poprzez przekazanie ciągu znaków reprezentującego nazwę pliku, ciągu znaków lub innego obiektu pliku. Na przykład,
File a = new File('/usr/local/bin/geeks'); Definiuje to abstrakcyjną nazwę pliku geeks w katalogu /usr/local/bin. To jest absolutnie abstrakcyjna nazwa pliku.
Pola w klasie plików w Javie
| Pole | Typ | Opis |
|---|---|---|
| separator ścieżki | Strunowy | znak lub ciąg używany do oddzielania poszczególnych ścieżek na liście ścieżek systemu plików. |
| ścieżkaSeparatorChar | Zwęglać | znak używany do oddzielania poszczególnych ścieżek na liście ścieżek systemu plików. |
| separator | Strunowy | domyślny znak separatora nazwy reprezentowany jako ciąg znaków. |
| separatorChar | Zwęglać | domyślny znak oddzielający nazwę. |
Konstruktory klasy plików Java
- Plik (nadrzędny plik, ciąg podrzędny): Tworzy nową instancję pliku na podstawie nadrzędnej abstrakcyjnej ścieżki i ciągu podrzędnej nazwy ścieżki. File(String pathname): Tworzy nową instancję File poprzez konwersję podanego ciągu nazwy ścieżki na abstrakcyjną ścieżkę. Plik (nadrzędny ciąg, ciąg podrzędny): Tworzy nową instancję pliku z ciągu nadrzędnego i podrzędnego ciągu ścieżki. Plik(URI uri): Tworzy nową instancję pliku poprzez konwersję podanego pliku: URI na abstrakcyjną ścieżkę.
Metody klasy plików w Javie
| Tak nie. | metoda | Opis | Typ zwrotu |
|---|---|---|---|
| 1. | możeWykonać() | Testuje, czy aplikacja może wykonać plik oznaczony tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 2. | można przeczytać() | Testuje, czy aplikacja może odczytać plik oznaczony tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 3. | potrafi pisać() | Testuje, czy aplikacja może modyfikować plik oznaczony tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 4. | porównajTo (ścieżka pliku) | Porównuje leksykograficznie dwie abstrakcyjne nazwy ścieżek. | wew |
| 5. | utwórzNowyPlik() | Niepodzielnie tworzy nowy, pusty plik nazwany tą abstrakcyjną ścieżką. | wartość logiczna |
| 6. | createTempFile (przedrostek ciągu, przyrostek ciągu) | Tworzy pusty plik w domyślnym katalogu plików tymczasowych. | Plik |
| 7. | usuwać() | Usuwa plik lub katalog oznaczony tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 8. | równa się (obiekt obiektu) | Testuje tę abstrakcyjną ścieżkę pod kątem równości z danym obiektem. | wartość logiczna |
| 9. | istnieje() | Testuje, czy plik lub katalog oznaczony tą abstrakcyjną nazwą ścieżki istnieje. | wartość logiczna |
| 10. | getAbsolutePath() | Zwraca bezwzględny ciąg nazwy ścieżki tej abstrakcyjnej ścieżki. | Strunowy |
| jedenaście. | lista() | Zwraca tablicę ciągów nazywających pliki i katalogi w katalogu. | Strunowy[] |
| 12. | getFreeSpace() | Zwraca liczbę nieprzydzielonych bajtów w partycji. | długi |
| 13. | pobierzNazwę() | Zwraca nazwę pliku lub katalogu oznaczonego tą abstrakcyjną ścieżką. | Strunowy |
| 14. | getParent() | Zwraca ciąg nazwy ścieżki nadrzędnej tej abstrakcyjnej ścieżki. | Strunowy |
| piętnaście. | pobierz plik nadrzędny() | Zwraca abstrakcyjną ścieżkę nadrzędną tej abstrakcyjnej ścieżki. | Plik |
| 16. | getPath() | Konwertuje tę abstrakcyjną nazwę ścieżki na ciąg nazwy ścieżki. | Strunowy |
| 17. | ustawTylko do odczytu() | Oznacza plik lub katalog o takiej nazwie, że dozwolone są tylko operacje odczytu. | wartość logiczna |
| 18. | isDirectory() | Testuje, czy plik oznaczony tą nazwą ścieżki jest katalogiem. | wartość logiczna |
| 19. | isFile() | Testuje, czy plik oznaczony tą abstrakcyjną nazwą ścieżki jest normalnym plikiem. | wartość logiczna |
| 20. | jest ukryty() | Testuje, czy plik nazwany tą abstrakcyjną ścieżką jest plikiem ukrytym. | wartość logiczna |
| dwadzieścia jeden. | długość() | Zwraca długość pliku oznaczonego tą abstrakcyjną nazwą ścieżki. | długi |
| 22. | listaPlików() | Zwraca tablicę abstrakcyjnych nazw ścieżek oznaczających pliki w katalogu. | Plik[] |
| 23. | mkdir() | Tworzy katalog nazwany tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 24. | zmień nazwę na (docelowy plik) | Zmienia nazwę pliku oznaczonego tą abstrakcyjną nazwą ścieżki. | wartość logiczna |
| 25. | setExecutable (boolowski plik wykonywalny) | Wygodna metoda ustawiania uprawnień właściciela do wykonywania. | wartość logiczna |
| 26. | setReadable (odczyt logiczny) | Wygodna metoda ustawiania uprawnień do odczytu właściciela. | wartość logiczna |
| 27. | setReadable (wartość logiczna czytelna, wartość logiczna tylko dla właściciela) | Ustawia uprawnienia do odczytu właściciela lub wszystkich osób. | wartość logiczna |
| 28. | setWritable (zapis logiczny) | Wygodna metoda ustawiania uprawnień do zapisu właściciela. | wartość logiczna |
| 29. | doString() | Zwraca ciąg ścieżki tej abstrakcyjnej nazwy ścieżki. | Strunowy |
| 30. | toURI() | Konstruuje identyfikator URI pliku reprezentujący tę abstrakcyjną nazwę ścieżki. | TYP |
Przykłady klas plików Java
Przykład 1: Program sprawdzający, czy plik lub katalog fizycznie istnieje, czy nie.
Jawa
// 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());> > }> > }> }> |
Wyjście
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
Przykład 2: Program wyświetlający całą zawartość katalogu
Tutaj przyjmiemy nazwę katalogu z klawiatury, a następnie wyświetlimy całą zawartość katalogu. W tym celu można zastosować metodę list() jako:
String arr[]=f.list();
W poprzedniej instrukcji metoda list() powoduje skopiowanie wszystkich wpisów katalogu do tablicy arr[] . Następnie przekaż te elementy tablicy arr[i] do obiektu File i przetestuj je, aby dowiedzieć się, czy reprezentują plik lub katalog.
Jawa
// 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'); } }> |
Wyjście
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
Powiązany post: FileReader i FileWriter w Javie