lecture file and folder working

50
Жава Технологи Улаанбаатар Дээд Сургууль Бэлтгэсэн: Багш Б.Ганзориг

Upload: ganzorigb

Post on 07-Aug-2015

79 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Lecture file and folder working

Жава Технологи

Улаанбаатар Дээд Сургууль

Бэлтгэсэн: Багш Б.Ганзориг

Page 2: Lecture file and folder working

ФАЙЛ, ФОЛДЕРТЭЙ АЖИЛЛАХ

Агуулга: Файл болон хавтасруу хандах Файлтай ажиллах, шүүлтүүр тавих Файл, хавтас үүсгэх, өөрчлөх Файлд бичих FileOutputStream Текст файлд бичих Файлаас унших Объектийг файлруу хийх

Page 3: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

Файл болон хавтастай ажиллахын тулд File классын объектийг хэрэглэнэ.– File классын объектийг үүсгэхдээ замыг нь

байгуулагч уруу зааж өгдөг.

Page 4: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

Гэхдээ File төрлийн объект нь өөрөө файл заахгүй. Програм зохиогч File төрлийн объектийг дараах зорилгоор хэрэглэдэг:– Уг файл диск дээр байгаа жинхэнэ файл

мөн эсэхэд– File stream объектийг үүсгэхэд

Page 5: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

Файл объектийг үүсгэхдээ тухайн файлын байрлах замыг нь зааж өгөх хэрэгтэй.– C:\Documents and Settings\Laboratory\Output.txt

Зарим үйлдлийн системүүд дээр файл фолдерыг тусгаарлах тэмдэгтүүд өөр өөр байдаг. – Жишээ нь: Linux – д :/ байдаг.

Page 6: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

Системд үл хамаарсан байдлаар замыг зааж өгөхийг хүсвэл File.separator тогтмолыг хэрэглэж болно. – “C:”+File.separator + “jdk1.5.0” +

File.separator + “src” + File.separator + “java” + File.separator + “io”, “File.java”

Page 7: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

File классын объектийг олон янзаар үүсгэж болно.

Заавал зөв зам заах албагүй. Хэрвээ буруу зам заасан бол алдаа гарна.

Page 8: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

Файлын оршин буй хавтас болон нэрээр нь салгаж зарлаж болно.

Page 9: Lecture file and folder working

ФАЙЛ БОЛОН ХАВТАСРУУ ХАНДАХ

File классын объектыг үүсгэхдээ өөр компьютер дээрх файлыг заах бол хаягийг, өөр компьютер дээр share хийгдсэн байгаа файлыг заавал файлын зам, компьютерийн нэртэй хамт зааж өгнө.

Page 10: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

Абсолют зам:– Тухайн файл нь яг хаана байгааг тодорхой заасан

С:\New Folder\in.txt Харьцангуй зам:

– Тухайн файл нь яг хаана байгаа нь тодорхой бус

New Folder\in.txt

Page 11: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

File класст мэдээлэл авах 30 гаруй функцууд байх боловч хамгийн хэрэгтэйг нь тайлбарлая– getName() : Уг файл объектын зааж буй файлын

нэрийг буцаана.– getPath() : Файлын нэрийг болон оршиж буй замын

бүтэн мэдээлэл агуулна– isAbsolute() : Файлыг зааж буй зам нь абсолют

замуу эсвэл харьцангуй замуу гэдгийг мэдээлнэ.

Page 12: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

– getParent() : File объектийг заасан хавтас эсвэл файлыг агуулж буй хавтасны замыг тэмдэгт мөрөөр буцаана.

– getParentFile() : Дээрх замыг File объект хэлбэрээр буцаана.

– exists() : Уг объектийн зааж буй файл уг заагдсан зам дээр оршиж буй эсэх

– isDirectory() : Хавтас зааж байгаа тохиолдолд үнэн утга буцаана

Page 13: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

– isFile() : Файл зааж байгаа тохиолдолд үнэн утга буцаана

– isHidden() : Уг файл далдлагдсан эсэхийг буцаана– canRead() : Заагдсан файлыг унших эрхтэй эсэхийг

харах– canWrite() : Заагдсан файлд бичих эрхтэй эсэхийг

харах– getAbsolutePath() : Абсолют замыг буцаана– getAbsoluteFile() : Абсолюут замыг File объектоор

буцаана

Page 14: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

Page 15: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

Хэрэв бидний зааж өгсөн файл эсвэл хавтас оршиж байгаа бол дараах функцуудээр тэдний тухай нэмэлт мэдээлэл авч болно: – list() : Хэрэв хавтас зааж байсан бол уг хавтас

дотор юу юу байгааг заасан тэмдэгт мөр массив өгнө. Хавтас хоосон бол хоосон массив буцаана. Хандах эрхгүй хавтаст хандвал SecurityException үүсдэг.

Page 16: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

– listFiles() : Дээрх мэдээллийг File объектуудаас бүрдсэн массиваар буцаана.

– listRoots() : Үндсэн дискийн агуулгыг File объектуудаас бүрдсэн массивыг буцаана.

Windows –д бол бүх логик драйвер дээрх мэдээллийг буцаана.

Unix систем дээр бол root хавтас доторх мэдээллийг буцаана.

Page 17: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

– length() : Файл зааж байгаа тохиолдолд хэмжээг нь байтаар тоолон long төрлөөр утга буцаана. Уг файл байхгүй бол 0 утга буцаана.

– lastModified() : Уг файл хэзээ үүссэнийг нь милсекундээр long төрөлтэй утга буцаана.

Энэ тоог огноо руу хөрвүүлэх шаардлага гарвал new Date(milSecond) гэж болно.

Page 18: Lecture file and folder working

ФАЙЛТАЙ АЖИЛЛАХ

Page 19: Lecture file and folder working

ФАЙЛ ХАВТСЫГ ҮҮСГЭХ ӨӨРЧЛӨХ

File класс дотор файлыг үүсгэх, устгах, read only болгох, нэрийг нь солих гэх мэт олон функцууд байдаг. – rename() : Уг объектийн зааж буй файл эсвэл

хавтасны нэрийг аргументад өгөгдсөн File объектийн замын мэдээллийн дагуу солино. Өөрчлөх нэрийг замаар нь өгдөг тул хэрэв өөр хавтас дотор зааж өгсөн бол уг файл одоо байгаа газраасаа уг заагдсан газар руу зөөгддөг.

Page 20: Lecture file and folder working

ФАЙЛ ХАВТСЫГ ҮҮСГЭХ ӨӨРЧЛӨХ

– setReadOnly() : Файлыг Read only болгоно– mkdir() : Уг объектийн замын мэдээллийн дагуу

шинэ хавтас үүсгэнэ. Хэрэв замд заагдсан эх хавтаснууд байхгүй байвал энэ функц уг хавтасыг үүсгэж чадахгүй.

– mkdirs() : Дээрхээс ялгаатай нь байхгүй байгаа эх хавтаснуудыг үүсгэж чадна.

Page 21: Lecture file and folder working

ФАЙЛ ХАВТСЫГ ҮҮСГЭХ ӨӨРЧЛӨХ

– createNewFile() : Уг объектийн замын мэдээллээр хоосон файл үүсгэнэ. Энэ функц нь зөвхөн үүсгэгдсэн байгаа хавтас дотор л файл үүсгэж чадна.

– CreateTempFile(String prefix, String suffix, File directory) : Түр ашиглагдах файл үүсгэдэг. Directory-д заагдсан газарт prefix-ээр санамсаргүй тэмдэгт залгагдсан нэртэй, suffix өргөтгөлтэй файл үүсгэдэг.

Page 22: Lecture file and folder working

ФАЙЛ ХАВТСЫГ ҮҮСГЭХ ӨӨРЧЛӨХ

– delete() : Өөрийн зааж буй файл эсвэл хавтасыг устгана. Устгаж чадвал true утга буцаана. Хэрэв устгах хавтас хоосон биш байвал устгадаггүй.

– deleteOnExit() : Програм дуусахад уг объектийн зааж байсан файл эсвэл хавтасыг устгадаг.

Page 23: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Файлруу бичихийн тулд FileOutputStream классыг хэрэглэдэг. – Энэ арга файлтай ажиллах эхний арга юм

FileOutputStream класс нь OutputStream классаас удамшсан.

Page 24: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Энэ классын байгуулагч функцыг 5 өөр параметртэйгээр дуудаж болно:– FileOutputStream(String fileName) : Уг заагдсан

файлруу хандах гаралтын стрийм үүсгэнэ. Хэрэв уг файл байсан бол агуулгыг нь шинээр дардаг. Харин файл олдохгүй бол FileNotFound exception үүсдэг.

– FileOutputStream(File file) : Эхний функцтэй ижил

Page 25: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

– FileOutputStream(String fileName, boolean append) : Эхнийхээс ялгаатай нь хоёрдахь аргументаар true утга дамжигдвал файлын өмнө байсан агуулга дарагдахгүй хойноос нь залгаж бичнэ.

– FileOutputStream(File file, boolean append) : Дээрх функцтэй ижил

– FileOutputStream(FileDescription desc) : FileDescriptor объект ашиглан үүсгэх. Энэ объект нь файлтай холбогдсон холбоос юм.

Page 26: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Энэ аргыг хэрэглэн файлд бичихийн өмнө уг файлаа оршин байгаа эсэхийг шалгах хэрэгтэй. – File объект хэрэглэн уг дамжуулагдсан зам дээрх

зүйл файл эсвэл хавтасын аль нь болохыг тодорхойлох

Page 27: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

– File объект хэрэглэн уг файл оршиж байгаа эсэхийг шалгах

– Уг файлыг заасан зам дахь эх хавтаснууд байхгүй байвал тэдгээрийг mkdirs() ашиглан үүсгэж өгөх.

Page 28: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Page 29: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

FileDescriptor ашиглан файлруу гаралтын stream үүсгэх.– Програм зохиогч ийм объект үүсгэж чадахгүй

боловч үүсчихсэн байгаа FileOutputStream объектийн getFD() функцыг ашиглан descriptor-ийг авдаг.

– Үүнийг ашиглан нэг файлруу олон зэрэг бичилт хийхэд жишээ нь хэрэглэж болно.

Page 30: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Файлруу гаралтын урсгал үүсгэсний дараа write() функцыг ашиглан файлруу өгөгдлийг бичнэ.

Өгөгдлийг бичиж дуусаад close() функцээр нь файлаа хаана.

Page 31: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Java 1.4 – с эхлэн ашиглагдаж буй файлтай ажиллах аргыг авч үзье.– Энэ арга нь өмнөх аргыг бодвол оролт гаралтын

ажиллагааны хурдыг нэмэгдүүлсэн.

Page 32: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Файл руу 2 аргаар хандаж болно.– Дараалсан хандалт (direct access).

Ийм хандалтаар файлд хандвал эхнээс нь эхэлж унших замаар гүйцэтгэдэг.

– Санамсаргүй хандалт (random access). Энэ нь файлын дурын хэсгээс хандах, бичих боломжийг олгодог хандалт юм.

Page 33: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Файл руу хандах энэ аргад гурван төрлийн объект хэрэглэдэг. – Физик файлруу холбоотой stream

Гаралтад FileOutputStream Оролтод FileInputStream Хэрэв файлруу санамсаргүй хандалт үүсгэх эсвэл уншилт

болон бичилт хийхээр үүсгэх бол RandomAccessFile объектийг ашиглана.

Page 34: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

– Өгөгдлүүдийг бичих болон уншихад зориулан түр хадгалах нэг болон хэд хэдэн буфер объект.

– Буферууд болон stream-ийг ашиглан буферээс stream-рүү, stream-ээс буферлүү өгөгдөл дамжуулах боломжийг олгодог холбогч (channel) объект.

Page 35: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Унших бичих процесс нь:– Бичихдээ өгөгдлөө буферуудын аль нэг рүү

оруулаад дараа нь холбогч объектийг ашиглан уг буфер дахь өгөгдлийг стрим рүү бичүүлнэ.

– Уншихдаа холбогч объектийг ашиглан стримээс өгөгдлийг буферлүү оруулаад дараа нь буферээсээ уншиж авдаг.

Page 36: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Page 37: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Page 38: Lecture file and folder working

ФАЙЛРУУ БИЧИХ

Файлтай ажиллах програмын үр дүн:

Page 39: Lecture file and folder working

ТЕКСТ ФАЙЛ ҮҮСГЭН БИЧИХ

Page 40: Lecture file and folder working

ТЕКСТ ФАЙЛ ҮҮСГЭН БИЧИХ

Програмын үр дүн:

Page 41: Lecture file and folder working

ФАЙЛААС УНШИХ

Файлаас унших үйлдлийг FileInputStream класс гүйцэтгэнэ. – Энэ классын объект руу уншилт хийх файлын

нэрийг стрингээр эсвэл File объектоор дамжуулах хэрэгтэй.

Page 42: Lecture file and folder working

ФАЙЛААС УНШИХ

Page 43: Lecture file and folder working

ФАЙЛААС УНШИХ

Page 44: Lecture file and folder working

RANDOM ACCESS FILE

Хэрэв файл руу унших болон бичихээр нээх Мөн файлын дурын хэсгээс унших

боломжтойгоор ажиллах хэрэгтэй болвол Эдгээр тохиолдлуудад RandomAccessFile

классыг хэрэглэдэг. Энэ класс нь өөр классаас удамшаагүй бөгөөд санамсаргүй хандалтыг бий болгоно. – Байгуулагчид нь файлын замын мэдээлэл болон

файлыг нээх горимын мэдээллийг дамжуулах ёстой.

Page 45: Lecture file and folder working

RANDOM ACCESS FILE

Энэ класс нь өөр классаас удамшаагүй бөгөөд санамсаргүй хандалтыг бий болгоно. – Байгуулагчид нь файлын замын мэдээлэл болон

файлыг нээх горимын мэдээллийг дамжуулах ёстой.

Page 46: Lecture file and folder working

RANDOM ACCESS FILE

Горимууд:– r: Файлыг уншихаар нээнэ– rw: Файлыг унших бичихээр нээнэ– rwd: Файлыг унших бичихээр нээх ба бүх үйлдлүүд

нь буферт хүлээгдэлгүйгээр шууд файлтайгаа ажиллахыг шаарддаг.

– rws: Файлыг унших бичихээр нээнэ. Бичигдсэн өгөгдлийн уртын хэмжээ нь мөн хамт бичигддэг.

Page 47: Lecture file and folder working

RANDOM ACCESS FILE

Жишээ:

Page 48: Lecture file and folder working

RANDOM ACCESS FILE

Програмын үр дүн:

Page 49: Lecture file and folder working

RANDOM ACCESS FILE

Жишээ:

Page 50: Lecture file and folder working

RANDOM ACCESS FILE

Програмын үр дүн: