Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 3.85 KB

File metadata and controls

32 lines (21 loc) · 3.85 KB

PrintThyself

პრობლემა:

დაწერეთ პროგრამა, რომელიც წაიკითხავს თAვის თავს ფაილიდან და დაბეჭდავს კონსოლში

პრობლემის გადაჭრის გზა

საკითხი ძალიან მარტივია, უპირველეს ყოვლისა უნდა ვცადოთ ფაილის გახსნა, შემდეგ კი წავიკითხოთ და შევინახოთ თითოეული ხაზი

როგორ გავხსნათ ფაილი?

ფაილის წასაკითხად საკმარისია გამოვიყენოთ BufferedReader და FileReader მეთოდები, რომლებიც java.io ბიბლიოთეკის ნაწილია. თუმცა მხოლოდ ეს როდია საკმარისი, თუ ფაილის სახელს არასწორად შევიყვანთ ან თუნდაც არარსებულ ფაილს მივუთითებთ მივიღებთ ბაგებს. თუმცა ამის ასარიდებლად შეგვიძლია გამოვიყენოთ try { .. } catch { .. }, შედეგად მივიღებთ შემდეგ კოდს

	try{
		
		BufferedReader br = new BufferedReader(new FileReader(fileName));
		//To-Do ...
		
	}catch(Exception e){
		//Error Message
	}

როგორ წავიკითხოთ ფაილიდან?

ეს ნაწილი საკმაოდ მარტივია, ფაილიდან ხაზის წაკითხვა შეგვიძლია BufferedReader-ის readLine() მეთოდის გამოყენებით, შესაბამისად შეგვიძლია ეს ფუნქცია მოვათავსოთ While(true) ციკლში, მაგრამ როდის უნდა გავაჩეროთ ციკლი? ესეც ძალიან მარტივია, მაშინ როდესაც readLine()-ს ფაილის დასასრულში ვიძახებთ ის აბრუნებს null-ს, ამიტომ შეგვიძლია ყოველ readLine()-ს გამოძახებას თან დავურთოთ შესაბამისი შემოწმებაც if(readLine() == null) break;.

შესაძლო ხარვეზები

ერთადერთი ხარვეზი რომელიც ზემოთ არ გაგვითვალიწნიებია გახლავთ - ფაილის დახურვა. მართალია ამ შემთხვევაში მოცემულ ამოცანას მაინც შეასრულებს ჩვენი კოდი, მაგრამ სხვა დროს, იმ შემთხვევაში თუ ფაილს არ დავხურავთ, შემდეგ კი მის ხელახლა გამოყენებას ვცდით მივიღებთ უამრავ შეცდომას და ვერც კი მივხვდებით რისი ბრალი შეიძლება იყოს. ამიტომ while ციკლის დასასრულს უბრალოდ შეგვიძლია დავწეროთ br.close() რომელიც დახურავს ჩვენს მიერ გახსნილ ფაილს