ФАЙЛ РУУ УНШИХ, БИЧИХ
InputStream бол өгөгдлийг эх үүсвэрээс уншихад ашигладаг, OutputStream бол өгөгдлийг ямар нэгэн эх үүсвэр лүү бичихэд ашигладаг тухай бид үзсэн. Доорх зурганд Input, Output stream-урсгалын классын иерархи бүтцийг харуулсан.
ЗУРАГ 1
Бидний ашиглах чухал 2 урсгал нь FileInputStream, FileOutputStream -ууд юм.
1. FileInputStream
Энэ урсгал нь файлаас өгөгдөл уншдаг. Объектийг нь 'new' түлхүүр үг ашиглаж хэд хэдэн байгуулагч аргаар үүсгэж болдог.
//Доорх байгуулагч арга нь файлын нэрийг абсолют директорын хамт String төрлөөр зарлаж байна.
InputStream myFile = new FileInputStream("C:/cs203/java/lab");
//Харин доорх байгуулагч нь файлын объектийг эхлэж үүсгээд дараа нь InputStream-д дамжуулж байна.
File f = new File("C:/cs203/java/lab");
InputStream f = new FileInputStream(f);
//Дээрх 2 жишээнд lab гэдэг бол файл юм. Файл бүхэн өргөтгөлтэй байх албагүй.
// Үүнээс гадна ByteArrayInputStream, DataInputStream зэрэг оролтын урсгалууд байдаг.
2. FileOutputStream
FileOutputStream нь файл үүсгэж, өгөгдөл бичихэд ашигладаг. Тухайн файл үүсээгүй үед шинээр үүсгэдэг. FileOutputStream объектийг 2 янзаар байгуулагч арга ашиглан үүсгэдэг.
//Доорх байгуулагч арга нь файлын нэрийг абсолют директорын хамт String төрлөөр зарлаж байна.
OutputStream f = new FileOutputStream(C:/cs203/java/lab");
//Харин доорх байгуулагч нь файлын объектийг эхлэж үүсгээд дараа нь OutputStream-д дамжуулж байна. Эхлээд бид файлаа File() арга ашиглаж үүсгэнэ.
File f = new File("C:/cs203/java/lab");
OutputStream f = new FileOutputStream(f);
// Үүнээс гадна ByteArrayOutputStream, DataOutputStream зэрэг оролтын урсгалууд байдаг.
ЖИШЭЭ 4
import java.io.*;
public class fileStreamTest{
public static void main(String args[]){
try{
byte bWrite [] = {11,21,3,40,5};
OutputStream os = new FileOutputStream("C:/cs203/java/lab.txt");
for(int x=0; x < bWrite.length ; x++){
os.write( bWrite[x] ); // өгөгдлөө бичиж байна
}
os.close(); // урсгалаа хааж байна
InputStream is = new FileInputStream("C:/cs203/java/lab.txt");
int size = is.available(); //тухайн файлын хэмжээг int -ээр буцаана
for(int i=0; i< size; i++){
System.out.print((char)is.read() + " ");
}
is.close(); // урсгалаа хааж байна
}catch(IOException e){
System.out.print("Exception"); //алдаа барьж авч байна. Файл байхгүй байх, бичих эрхгүй байх г.м
}
}
}
//Дээрх програмын код нь файлын оролт, гаралтын тухай ерөнхий ойлголтыг үзүүлнэ. lab.txt файлд өгөгдсөн тоонуудыг бинари форматаар бичнэ. Дэлгэцэнд хэвлэхдээ буцаагаад тэмдэгт болгож хувиргана.
Java Директор (Хавтас)
Хавтас үүсгэх:
Хавтас үүсгэдэг File- классын 2 төрлийн арга байдаг.
1. mkdir()
Хавтас амжилттай үүссэн бол true утга буцаана. Үүсгэх гэсэн хавтас хэдийн үүссэн байх, абсолют бүрэн зам нь үүсээгүй байх үед худал утга буцаана. Ж/нь: "C/cs203/lab10" C дискний cs203 хавтсанд lab10 гэсэн хавтас үүсгэе гэлээ гэж бодоход хэрвээ cs203 гэсэн хавтас үүсээгүй бол lab10 үүсч чадахгүй алдаатай байх юм.
2. mkdirs()
Үүсгэх гэж буй хавтасны эцэг хавтас үүсээгүй үед ч үүсгэж чадна. Ж/нь: "C/cs203/lab10" C дискний cs203 хавтсанд lab10 гэсэн хавтас үүсгэе гэлээ гэж бодоход хэрвээ cs203 гэсэн хавтас үүсээгүй бол cs203 болон lab10 гэсэн хавтасуудыг цугт нь шинээр үүсгэдэг.
// Доорх код нь /cs203/lab10 гэсэн директор буюу хавтас үүсгэнэ
ЖИШЭЭ 5
import java.io.File;
class CreateDir {
public static void main(String args[]) {
String dirname = "/cs203/lab10";
File d = new File(dirname);
// Хавтас үүсгэх хэсэг
d.mkdirs();
}
}
Хавтас унших:
Хавтас буюу директор хэд хэдэн файл, хавтас өөртөө агуулж болно. File -н объектийг үүсгээд дараа хавтас мөн эсэхийг нь isDirectory( ) аргын тусламжтайгаар true утгыг авч шалгаж болно.
list( ) аргаар тухайн объект-д харгалзах файл, дэд хавтасуудыг үзэж болно. Доорх програмын кодыг харна уу.
ЖИШЭЭ 6
import java.io.File;
class DirList {
public static void main(String args[]) {
String dirname = "/lab10";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println( "Khavtas " + dirname);
String s[] = f1.list();
for (int i=0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + " bol khavtas mon");
} else {
System.out.println(s[i] + " bol file mon");
}
}
} else {
System.out.println(dirname + " bol khavtas bish");
}
}
}
Үр дүн:
Khavtas / lab10
lab10.java bol file mon
lab10.class bol file mon
lab10_2.java bol file mon
lab10_2.class bol file mon
labnemelt bol khavtas mon
labnemelt2 bol khavtas mon