lecture file and folder working

Post on 07-Aug-2015

79 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

New Folder\in.txt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

буцаана

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RANDOM ACCESS FILE

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

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

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

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

RANDOM ACCESS FILE

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

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

RANDOM ACCESS FILE

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

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

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

RANDOM ACCESS FILE

Жишээ:

RANDOM ACCESS FILE

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

RANDOM ACCESS FILE

Жишээ:

RANDOM ACCESS FILE

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

top related