Java dasturlash tilida, fayl - bu abstract ma’lumot turi hisoblanadi. Maxsus ma’lumot saqlash uchun nomlangan adres fayl deyiladi. Fayllar bilan ishlashni boshlashdan oldin, streamlar va fayl metodlari bilan tanishib chiqamiz.
Stream - bu ma’lumotlar ketma-ketligi. Java dasturlash tilida stream 2 xil bo’ladi: Byte Stream va Character Stream.
- Byte Stream yordamida fayllar bilan ishlash shunday jarayonki, fayl input sifatida olinadi va byte (bit) ma’lumot sifatida qayta ishlanadi.
- Character Stream yordamida fayllar bilan ishlash shunday jarayonki, fayl input sifatida olinadi va character (belgili) ma’lumot sifatida qayta ishlanadi.
File classi quyidagi tayyor metodlarga ega:
- canRead() - fayldan ma’lumotni o’qish mumkin yoki yo’qligini aniqlaydi. Boolean qiymat qaytaradi.
- createNewFile() - yangi bo’sh fayl yaratadi va Boolean qiymat qaytaradi.
- canWrite() - faylga ma’lumot yozish mumkin yoki yo’qligini aniqlaydi. Boolean qiymat qaytaradi.
- exists() - ma’lum fayl mavjud yoki mavjud emasligini aniqlaydi. Boolean qiymat qaytaradi.
- delete() - faylni o’chirish uchun ishlatiladi va Boolean qiymat qaytaradi.
- getName() - faylning nomini String tipida qaytaradi.
- getAbsolutePath() - faylning absolyut yo’lini (adresini) String qiymatida qaytaradi.
- length() - fayl o’lchamini bitlarda Long qiymatida qaytaradi.
- list() - papkadagi mavjud fayllar ro’yxatini String massivi shaklida qaytaradi.
- mkdir() - yangi papka yaratish uchun foydalaniladi va Boolean qiymat qaytaradi.
Endi fayllar ustida asosiy amallarni ko’rib chiqamiz.
Fayl yaratish
Fayl yaratish uchun createNewFile() metodidan foydalanamiz. Agar fayl muvaffaqiyatli yaratilsa true qiymat qaytaradi, aks holda bunday nomdagi fayl mavjud bo’lsa, false qiymat qaytaradi. Quyidagi kodda komputerimizning D: diskida “fayl.txt” nomli matnli fayl yaratamiz.
import java.io.File;
import java.io.IOException;
class CreateFile {
public static void main(String args[]) throws IOException {
File f0 = new File("D:fayl.txt");
if (f0.createNewFile()) {
System.out.println("Fayl muvaffaqiyatli yaratildi: " + f0.getName());
} else {
System.out.println("Papkada bunday nomdagi fayl mavjud.");
}
}
}
}
Fayl ma’lumotlarini olish
Faylning turli ma’lumotlarini olish uchun turli tayyor metodlar mavjud. Masalan, faylning o’lchamini, nomini, absolyut yo’lini olish yoki undan ma’lumot o’qish yoki unga ma’lumot yozish mumkin yoki yo’qligini aniqlash. Quyida shunday metodlar ishlatilgan kod keltiramiz:
import java.io.File;
class FileInfo {
public static void main(String[] args) {
File f0 = new File("D:fayl.txt");
if (f0.exists()) { // Faylni mavjudligini tekshirish
System.out.println("Fayl nomi: " + f0.getName());
System.out.println("Faylning absolyut yo’li: " + f0.getAbsolutePath());
System.out.println("Faylga yozsa bo’ladimi?: " + f0.canWrite());
System.out.println("Fayldan o’qisa bo’ladimi?: " + f0.canRead());
System.out.println("Fayl o’lchami baytlarda: " + f0.length());
} else {
System.out.println("Fayl mavjud emas.");
}
}
}
Faylga yozish
Faylga ma’lumot yozish uchun FileWriter classining write() metodidan foydalanamiz. Yozilgan ma’lumotni o’qiy olish uchun faylni close() metodi bilan yopish zarurligini yodda saqlang. Quyidagi misolga e’tibor bering.
import java.io.FileWriter;
import java.io.IOException;
class WriteToFile {
public static void main(String[] args) throws IOException {
FileWriter fwrite = new FileWriter("D:fayl.txt");
fwrite.write("uzbekdevs.uz platformasida ITga doir turli darsliklar mavjud.");
fwrite.close();
}
}
Fayldan o’qish
Fayldan ma’lumot o’qish uchun Scanner classining close(), hasNextLine(), nextLine() metodlaridan foydalanamiz. Quyida shunday misol ko’ramiz:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
class ReadFromFile {
public static void main(String[] args) throws FileNotFoundException {
File f1 = new File("D:fayl.txt");
Scanner dataReader = new Scanner(f1);
while (dataReader.hasNextLine()) {
String fileData = dataReader.nextLine();
System.out.println(fileData);
}
dataReader.close();
}
}
Faylni o’chirish
Faylni o’chirish uchun delete() metodidan foydalanamiz.
import java.io.File;
class DeleteFile {
public static void main(String[] args) {
File f0 = new File("D:fayl.txt");
if (f0.delete()) {
System.out.println(f0.getName()+ " fayl muvaffaqiyatli o'chirildi.");
} else {
System.out.println("Faylni o'chirishda kutilmagan xatolik yuz berdi.");
}
}
}