15-Lekciya
.pdfPotoklar menen jumıs islep bolǵannan soń ádette olardı jabıw kerek boladı. Bul maqsette Closeable interfeysinde anıqlanǵan close() metodı isletiledi. Metod tómendegishe kóriniske iye:
void close() throws IOException
Bul interfeys potoklar menen islewshi barlıq klasslarda realizaciya qılınadı. Potoktı jabıw waqtında oǵan ajıratılǵan resurslardan azat etiledi, máselen fayllardan. Al eger potok jabılmay qalsa, yad tolıp ketiwi yamasa qátelik júz beriwi múmkin.
Potoktı jabıw ushın Javada ádette try catch finally bloki paydalanılatuǵın edi. Java 7 den baslap jáne bir qolay usılı payda boldı. Bul try-with-resources konstruktorı bolıp, ol avtomat túrde close() metodın shaqıradı. Joqarıda keltirilgen mısallarda usı konstruktordan paydalanıldı.
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>
BufferedWriter hám BufferedReader klassları
BufferedWriter klası potokqa jazıp alınǵan tekstti buferizaciya qıladı. Bul klastan paydalanıw fizikalıq qurılmaǵa bolǵan múrajatlardı azaytadı. Nátiyjede programma islewi tezlesiwi múmkin.
Bul klastıń obyektin jaratıwda tómendegishe konstruktorlardan paydalanıw múmkin.
Konstruktorlar |
|
Wazıypası |
BufferedWriter(Writer out) |
Writer obyekti arqalı jaratıladı. Bunda out |
|
|
|
jazıwshı potok |
BufferedWriter(Writer |
out, |
int Writer obyekti hám size ózgeriwshi arqalı |
size) |
|
jaratıladı. Bunda out jazıwshı potok, al size |
|
|
bufer ólshemi |
Joqarıda FileWriter de kórsetilgen mısaldı BufferedWriter den paydalanıp isleyik. Programma kodı tómendegishe boladı.
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>
import java.io.*; public class Program {
public static void main(String[] args) {
try(BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt")))
{
String text = "Qandayda bir tekst…"; bw.write(text);
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
}
}
Bunda BufferedWriter bw = new BufferedWriter() arqalı taza obyekt jaratıp, jazılǵan potoktı buferge ótkeriw ushın qollanılsa, new FileWriter("test.txt") bolsa jazıwshı potok ushın qollanıladı. bw.write() metodı kórsetilgen faylǵa jazıwshı metod. Programmanıń qalǵan bólegi joqarıda aytıldı.
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>
BufferedReader klası simvollar potokındaǵı tekstti buferizaciya qıladı. Bul klasstan paydalanıw, programma ónimdarlıǵın arttıradı. BufferedReader klasında tómendegi konstruktorlar bar.
Konstruktorlar |
|
Wazıypası |
BufferedReader(Reader in) |
Reader obyekti arqalı jaratıladı. Bunda in |
|
|
|
oqıtıw potoki |
BufferedReader(Reader |
in, |
int Reader obyekti hám size ózgeriwshi arqalı |
size) |
|
jaratıladı. Bunda in oqıtıw potoki, al size |
|
|
bufer ólshemi |
BufferedReader Reader klası miyrasxorı bolǵanlıqtan, usı Reader klasındaǵı barlıq metodlar isleydi. Bunnan tısqarı BufferedReader klasında óziniń readLine() metodı bolıp, bul potoktan maǵlıwmatlardı qatarma-qatar oqıydı.
BufferedReader klasın joqarıda kórsetilgen FileReader klasında kórsetilgen mısaldaǵıday etip islewge boladı. Bunnan ózgeshe qılıp qatarma-qatar oqıtıwdı kóreyik. Programma kodı tómendegishe boladı.
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>
import java.io.*; public class Program {
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new FileReader("test.txt")))
{
//qatarma-qatar oqıtıw String s;
while((s=br.readLine())!=null){ System.out.println(s);
}
}
catch(IOException ex){ System.out.println(ex.getMessage());
}
}
}
Bunda br.readLine() metodı 1 qatardı tolıq oqıydı. Eger qatarlar tawsılsa, onda bul metod null mánisin qaytaradı. Programmanıń qalǵan bólegi menen joqarıda tanıstırıldı.
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>
Tákirarlaw sorawları
Javada kiritiw shıǵarıw potoki qaysılar?
Reader hám Writer abstrakt klasslarınıń wazıypasın túsindiriń?
FileReader hám FileWriter klasslarınıń konstruktorların aytıń
FileReader hám FileWriter klasslarınıń qanday metodların bilesiz?
BufferedReader hám BufferedWriter klassları qanday maqsette qollanıladı?
BufferedReader hám BufferedWriter klasslarınıń jazılıw strukturaların kórsetiń?
</TITUNF></PI></PROGRAMMALASTIRIW I></A.B.ORINBAEV>