Co to jest klasa plików Java
Klasa File jest zdefiniowana w pakiecie java.io i nie działa bezpośrednio ze strumieniami. Klasa Java File służy do zarządzania informacjami o plikach i katalogach. Jak wiadomo, na poziomie systemu operacyjnego pliki i katalogi są różnymi obiektami. Jednak w Javie oba są opisane przez tę samą klasę File . Być może zastanawiasz się, dlaczego nie używać po prostu ciągów znaków do odwoływania się do plików? Po pierwsze dlatego, że dostęp do plików jest inny w różnych systemach operacyjnych.Konstruktory klas plików
W zależności od tego, czy obiekt klasy Java.io.File ma reprezentować plik, czy katalog, do utworzenia obiektu możemy użyć jednego z konstruktorów: File(String pathname) w tym przypadku konstruktor tworzy nową instancję File poprzez konwersję podanej ścieżki ciąg znaków w abstrakcyjną nazwę ścieżki. File(String myPath, String myString) ten konstruktor tworzy nową instancję File na podstawie ciągu nazwy ścieżki myPath i ciągu nazwy ścieżki myString. Plik (nadrzędny plik, nazwa ciągu) tworzy nową instancję pliku na podstawie abstrakcyjnej ścieżki pliku i ciągu nazwy ścieżki. Konstruktor File(URI uri) w tym przypadku tworzy nową instancję File poprzez konwersję podanego pliku: URI na abstrakcyjną ścieżkę. URI to klasa Java reprezentująca odwołanie do Uniform Resource Identifier (URI). Oto przykład różnych konstruktorów klas Java.io.File :import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
public class FileTest {
public static void main(String[] args) throws URISyntaxException {
File myFile1 = new File("d:\\MyCat");
File myFile2 = new File ("d:\\MyCat", "cat.txt");
File myFile3 = new File(myFile1, "cat.txt");
URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
File myFile4 = new File(uri);
}
}
Metody klasy plików
Klasa Java File posiada wiele metod pozwalających na manipulowanie plikami i katalogami. Rozważmy niektóre z nich:-
boolean createNewFile() tworzy nowy plik na ścieżce przekazanej konstruktorowi. Zwraca wartość true, jeśli się powiedzie, w przeciwnym razie false
-
boolean Delete() usuwa katalog lub plik ze ścieżki przekazanej konstruktorowi. Zwraca wartość true w przypadku pomyślnego usunięcia
-
boolean istnieje() sprawdza, czy plik lub katalog istnieje w ścieżce określonej w konstruktorze. Jeśli plik lub katalog istnieje, zwraca wartość true, w przeciwnym razie zwraca wartość false
-
String getAbsolutePath() zwraca ścieżkę bezwzględną dla ścieżki przekazanej do konstruktora obiektu
-
String getName() zwraca krótką nazwę pliku lub katalogu
-
String getParent() zwraca nazwę katalogu nadrzędnego
-
boolean isDirectory() zwraca wartość true, jeśli podana ścieżka zawiera katalog
-
boolean isFile() zwraca wartość true, jeśli pod podaną ścieżką znajduje się plik
-
boolean isHidden() zwraca wartość true, jeśli katalog lub plik jest ukryty
-
longlength() zwraca rozmiar pliku w bajtach
-
long lastModified() zwraca czas ostatniej modyfikacji pliku lub katalogu. Wartość reprezentuje liczbę milisekund, które upłynęły od epoki Uniksa
-
String[] list() zwraca tablicę plików i podkatalogów znajdujących się w określonym katalogu
-
File[] listFiles() zwraca tablicę plików i podkatalogów znajdujących się w określonym katalogu
-
boolean mkdir() tworzy nowy katalog i zwraca wartość true, jeśli się powiedzie
-
boolean renameTo(File dest) zmienia nazwę pliku lub katalogu
Niektóre funkcje klasy Java File
-
Ścieżka (abstrakcyjna lub ciąg znaków) może być bezwzględna lub względna. Element nadrzędny ścieżki abstrakcyjnej można pobrać, 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 nakładać ograniczenia na pewne operacje na rzeczywistym obiekcie systemu plików, takie jak odczyt, zapis i wykonywanie. Ograniczenia te nazywane są uprawnieniami dostępu.
-
Instancje klasy File są niezmienne. Oznacza to, że po utworzeniu pliku abstrakcyjna ścieżka reprezentowana przez obiekt File nigdy się nie zmieni.
Przykłady kodu klasy pliku
Stwórzmy program współpracujący z katalogami. W pierwszej kolejności powinien utworzyć katalog pod podaną ścieżką a następnie utworzyć nowy plik i sprawdzić czy plik i katalog istnieją.import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws IOException {
//create a directory using mkdir() File class method
File dir = new File("d:\\MyDir");
boolean created = dir.mkdir();
if(created)
System.out.println("Folder has been created...");
else
System.out.println("Folder hasn't been created...");
File myFile = new File("d:\\MyDir\\cat.txt");
myFile.createNewFile();
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if(myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
}
}
Oto dane wyjściowe:
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File dir = new File("d:\\MyDir");
File myFile = new File("d:\\MyDir\\cat.txt");
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if (myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
System.out.println("Absolute path: " + myFile.getAbsolutePath());
if (myFile.exists()) {
System.out.println("Is writable: " + myFile.canWrite());
System.out.println("Is readable: " + myFile.canRead());
System.out.println("Is a directory: " + myFile.isDirectory());
System.out.println("myFile Size in bytes = " + myFile.length());
}
}
}
Dane wyjściowe programu to:
GO TO FULL VERSION