1. Fileskelas

Kelas file

Kanggo nggarap file, ana kelas sarana sing apik - java.nio.file.Files. Wis cara kanggo saben kesempatan. Kabeh cara saka kelas iki statis lan operate ing obyek Path. Ana akeh cara, mula kita bakal nimbang mung sing paling penting:

Metode Katrangan
Path createFile(Path path)
Nggawe file anyar sing pathpath
Path createDirectory(Path path)
Nggawe direktori anyar
Path createDirectories(Path path)
Nggawe macem-macem direktori
Path createTempFile(prefix, suffix)
Nggawe file sementara
Path createTempDirectory(prefix)
Nggawe direktori sementara
void delete(Path path)
Mbusak file utawa direktori yen kosong
Path copy(Path src, Path dest)
Nyalin file
Path move(Path src, Path dest)
Ngalih file
boolean isDirectory(Path path)
Priksa manawa path kasebut minangka direktori lan dudu file
boolean isRegularFile(Path path)
Priksa manawa path kasebut minangka file lan dudu direktori
boolean exists(Path path)
Priksa manawa ana obyek ing dalan sing diwenehake
long size(Path path)
Ngasilake ukuran file
byte[] readAllBytes(Path path)
Ngasilake kabeh isi file minangka array byte
String readString(Path path)
Ngasilake kabeh isi file minangka senar
List<String> readAllLines(Path path)
Ngasilake kabeh isi file minangka dhaptar strings
Path write(Path path, byte[])
Nulis array byte menyang file
Path writeString(Path path, String str)
Nulis string menyang file
DirectoryStream<Path> newDirectoryStream(Path dir)
Ngasilake koleksi file (lan subdirektori) saka direktori sing diwenehake

2. Nggawe file lan direktori

File lan direktori gampang banget digawe. Ayo yakin karo sawetara conto:

Kode Cathetan
Files.createFile(Path.of("c:\\readme.txt"));
Nggawe file
Files.createDirectory(Path.of("c:\\test"));
Nggawe direktori
Files.createDirectories(Path.of("c:\\test\\1\\2\\3"));
Nggawe direktori lan kabeh subdirektori sing dibutuhake yen ora ana.

3. Nyalin, mindhah lan mbusak

Nyalin, mindhah lan mbusak file kaya gampang. Iki uga ditrapake kanggo direktori, nanging kudu kosong.

Kode Cathetan
Path path1 = Path.of("c:\\readme.txt");
Path path2 = Path.of("c:\\readme-copy.txt");
Files.copy(path1, path2);
Nyalin file
Path path1 = Path.of("c:\\readme.txt");
Path path2 = Path.of("d:\\readme-new.txt");
Files.move(path1, path2);
Ngalih lan ngganti jeneng file
Path path = Path.of("d:\\readme-new.txt");
Files.delete(path);
Mbusak file

4. Priksa jinis file lan orane

Yen sampeyan duwe path sing diwenehake dening wong liya, sampeyan pengin ngerti apa iku file utawa direktori. Lan umume, apa file / direktori kasebut ana utawa ora?

Ana cara khusus kanggo iki uga. Sampeyan uga bisa ngerteni dawa file kanthi gampang:

Kode Cathetan
Files.isRegularFile(Path.of("c:\\readme.txt"));
true
Files.isDirectory(Path.of("c:\\test"));
true
 Files.exists(Path.of("c:\\test\\1\\2\\3"));
false
Files.size(Path.of("c:\\readme.txt"));
10112

5. Nggarap isi file

Pungkasan, ana macem-macem cara sing nggawe gampang maca utawa nulis isi file. Tuladha:

Kode Katrangan
Path path = Path.of("c:\\readme.txt");
List<String> list = Files.readAllLines(path);

for (String str : list)
   System.out.println(str);

Waca isi file minangka dhaptar strings.

Tampilake senar


6. Njupuk isi direktori

Cara sing paling menarik isih tetep. Iki digunakake kanggo njupuk file lan subdirektori ing direktori tartamtu.

Kita ngomong babagan newDirectoryStream()cara, sing ngasilake obyek khusus DirectoryStream<Path>. Wis iterator (!) sing bisa digunakake kanggo njupuk kabeh file lan subdirektori saka direktori tartamtu.

Iki luwih gampang tinimbang muni.

Kode Katrangan
Path path = Path.of("c:\\windows");

try (DirectoryStream<Path> files = Files.newDirectoryStream(path)) {
   for (Path path : files)
      System.out.println(path);
}


Entuk obyek kanthi dhaptar file
Loop ing dhaptar file

Objek kasebut DirectoryStream<Path>nduweni rong sifat. Kaping pisanan, nduweni iterator sing ngasilake path file, lan kita bisa nggunakake obyek iki ing daur for-eachulang.

Lan kaloro, obyek iki minangka aliran data, mula kudu ditutup kanthi jelas nggunakake close()metode kasebut, utawa nyatakake panggunaan ing try-with-resourcesblok.



7. Files.newInputStreamcara

Diwiwiti karo Java 5, kelas FileInputStreamlan FileOutputStreamwis ora digunakake. Salah sawijining kekurangane yaiku nalika obyek saka kelas kasebut digawe, file langsung digawe ing disk. Lan kabeh pangecualian sing ana gandhengane karo nggawe file bisa uga dibuwang.

Mengko iki diakoni minangka dudu keputusan sing paling apik. Mulane, dianjurake kanggo nggunakake metode kelas sarana java.nio.Fileskanggo nggawe obyek file.

Mangkene perbandingan antarane pendekatan lawas lan pendekatan anyar kanggo nggawe file:

sadurunge
String src = "c:\\projects\\log.txt";
InputStream input = new FileInputStream(src);
Sawise
String src = "c:\\projects\\log.txt";
InputStream input = Files.newInputStream( Path.of(src) );

Lan ana panggantos sing padha kanggo FileOutputStream:

sadurunge
String src = "c:\\projects\\log.txt";
OutputStream  output = new FileOutputStream( src );
Sawise
String src = "c:\\projects\\log.txt";
OutputStream  output = Files.newOutputStream( Path.of( src ) );