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