import
java.io.*;
public class
Program {
public static void
main(String[] args) {
try
(FileWriter writer =
new
FileWriter(
"test.txt"
,
false
))
{
// Barlıq tekstlerdi jazıw
String text =
"Qandayda bir tekst…"
;
writer.write(text);
// taza qatar
writer.append(
'\n'
);
// simvol jazıw
writer.append(
'A'
);
writer.flush();
}
catch
(IOException ex){
System.
out
.println(ex.getMessage());
}
}
}
Bunda
FileWriter writer = new FileWriter("test.txt", false)
qatarı taza obyekt jaratadı.
"test.txt"
– faylǵa bolǵan jol hám fayl atın bildiredi.
false
– fayl qayta jazılıwın bildiredi.
try catch
bloki
IOException
qáteliginiń
aldın alıw ushın qollanılǵan.
writer.write(text)
qatarı
writer
obyektine
text
qatarın qosadı. Tap usınday
append()
metodı
writer
obyektine simvoldı
qosadı.
writer.flush()
metodı
writer
obyektin
tazalaw
ushın,
ex.getMessage()
metodı júz bergen
IOExcepton
haqqında xabar beriw ushın
qollanıladı.
FileReader
klası.
FileReader
klası tekstli fayllardan oqıw imkaniyatın beredi.
Bul klass obyektin jaratıwda tómendegi konstruktorlardan birin paydalanıwǵa
boladı.
Konstruktorlar
Wazıypası
FileReader(String fileName)
String
ózgeriwshisi tiykarında taza obyekt
jaratıladı. Bunda
fileName
ózgeriwshisi fayl
atı hám oǵan bolǵan joldı kórsetedi.
FileReader(File file)
File
obyekti tiykarında taza obyekt jaratıladı.
FileReader(FileDescriptor fd)
FileDescriptor
obyekti járdeminde taza
obyekt jaratadı.
Tómendegishe ápiwayı mısaldı qarayıq. Bunda “test.txt” faylına jazılǵan tekstti oqıw
kerek bolsın. Programma kodı tómendegishe boladı.
import
java.io.*;
public class
Program {
public static void
main(String[] args) {
try
(FileReader reader =
new
FileReader(
"test.txt"
))
{
// simvol boyınsha birme-bir oqıw
int
c;
while
((c=reader.read())!=-1){
System.out.print((
char
)c);
}
}
catch
(IOException ex){
System.
out
.println(ex.getMessage());
}
}
}
Bunda dáslep reader obyekti jaratıladı, onda
"test.txt"
– bul oqıtılıwı kerek
bolǵan faylǵa bolǵan jol hám fayl atı
reader.read()
metodı fayldaǵı simvollardı
birme-bir oqıydı hám sol simvoldıń kodın
int
tipinde qaytaradı. Eger metod -1
mánisin qaytarsa onda fayldaǵı simvollar tolıq oqılıp bolınǵanlıǵın bildiredi.
while
cikl operatorı
reader.read()
metodı
-1 mánisin qaytarǵansha fayldaǵı
simvollardı oqıydı.
(char)c
arqalı qaytadan simvolǵa aylandırıladı.
try catch
joqarıda aytılǵanday wazıypanı atqaradı.
Tekstli fayldan oqıtıwda simvollardı birme-bir emes, al simvollar massivi arqalı
oqıtsaqta boladı. Bunda programma kodı tómendegishe boladı.
import
java.io.*;
import
java.util.Arrays;
public class
Program {
public static void
main(String[] args) {
try
(FileReader reader =
new
FileReader(
"test.txt"
))
{
Bunda fayldan
buf
massiv arqalı oqıtıladı. Yaǵnıy, bir waqıttıń ózinde 256 simvolǵa
deyin oqıtılıwı múmkin. Eger faylda 256 simvoldan az bolsa (máselen 73 simvol), sol
bólegi Arrays.copyOf() metodı arqalı ózine qayta nusqalanadı. Bunda fayldan
oqıtılǵan simvollar ǵana qaladı.
char
[] buf =
new char
[256];
int
c;
while
((c = reader.read(buf))>0){
if(c < 256){
buf = Arrays.copyOf(buf, c);
}
System.
out
.print(buf);
}
}
catch
(IOException ex){
System.
out
.println(ex.getMessage());
}
}
}
Potoklar 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ı.
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
size)
Writer
obyekti hám
size
ózgeriwshi arqalı
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ı.
BufferedWriter
hám
BufferedReader
klassları
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ı.
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.
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ı.
Konstruktorlar
Wazıypası
BufferedReader(Reader in)
Reader
obyekti arqalı jaratıladı. Bunda
in
oqıtıw potoki
BufferedReader(Reader
in,
int
size)
Reader
obyekti hám
size
ózgeriwshi arqalı
jaratıladı. Bunda
in
oqıtıw potoki, al
size
bufer ólshemi
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ı.
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ń?
Do'stlaringiz bilan baham: |