Java Language
Ny fil I / O
Sök…
Syntax
- Paths.get (String först, String ... mer) // Skapar en Path-instans med dess String-element
- Paths.get (URI uri) // Skapar en sökvägsinstans av en URI
Skapa vägar
Path klassen används för att programmera att representera en sökväg i filsystemet (och kan därför peka på filer såväl som kataloger, även till icke-existerande)
En sökväg kan erhållas med hjälp av hjälpklassen Paths :
Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");
Hämtar information om en sökväg
Information om en sökväg kan fås med metoderna för ett Path :
toString()returnerar strängrepresentationen av sökvägenPath p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"getFileName()returnerar filnamnet (eller närmare bestämt det sista elementet i sökvägenPath p1 = Paths.get("/var/www"); // p1.getFileName() returns "www" Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"getNameCount()returnerar antalet element som bildar sökvägenPath p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2getName(int index)returnerar elementet vid det givna indexetPath p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"getParent()returnerar sökvägen för överordnad katalogPath p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"getRoot()returnerar banans rotPath p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/" Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
Manipulera banor
Gå med i två vägar
Vägar kan förenas med metoden resolve() . Den sökta vägen måste vara en delvis sökväg, vilket är en sökväg som inte innehåller rotelementet.
Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"
Normalisering av en sökväg
Sökvägar kan innehålla elementen . (som pekar på katalogen du för närvarande är i) och .. (som pekar på överordnad katalog).
Vid användning i en bana . kan tas bort när som helst utan att ändra banans destination, och .. kan tas bort tillsammans med föregående element.
Med Paths API görs detta med .normalize() :
Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"
Hämta information med filsystemet
För att interagera med filsystemet använder du metoderna för Files .
Kontrollera existensen
För att kontrollera förekomsten av filen eller katalogen som en sökväg pekar på använder du följande metoder:
Files.exists(Path path)
och
Files.notExists(Path path)
!Files.exists(path) behöver inte nödvändigtvis vara lika med Files.notExists(path) , eftersom det finns tre möjliga scenarier:
- En fils eller katalogens existens verifieras (
existsreturnerartrueochnotExistsreturnerarfalsei detta fall) - En fils eller katalogs icke-existens är verfied (
existsreturnerarfalseochnotExistsreturnerartrue) - Varken förekomsten eller att det inte finns någon existens av en fil eller en katalog kan verifieras (till exempel på grund av åtkomstbegränsningar): Både
existsochnonExistsexistsreturnerar falskt.
Kontrollera om en sökväg pekar på en fil eller en katalog
Detta görs med hjälp av Files.isDirectory(Path path) och Files.isRegularFile(Path path)
Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false
Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true
Få egenskaper
Detta kan göras på följande sätt:
Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)
Files.isHidden(Path path)
Files.isSymbolicLink(Path path)
Få MIME-typ
Files.probeContentType(Path path)
Detta försöker få MIME-typen av en fil. Den returnerar en MIME-typ String, så här:
-
text/plainför textfiler -
text/htmlför HTML-sidor -
application/pdfför PDF-filer -
image/pngför PNG-filer
Läser filer
Filer kan läsas byte- och radmässigt med klassen Files .
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);
Files.readAllLines() tar valfritt en charset som parameter (standard är StandardCharsets.UTF_8 ):
List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);
Skriva filer
Filer kan skrivas bita och linjevis med klassen Files
Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
new String[]{"First line", "Second line", "Third line"});
Files.write(p2, lines);
Files.write(Path path, byte[] bytes)
Befintliga filer kommer att åsidosättas, icke-befintliga filer skapas.