CoreJava 9 - LUỒNG I/O (I/O Streams)
Số trang: 21
Loại file: doc
Dung lượng: 1.28 MB
Lượt xem: 22
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Phương thức wait() báo cho dòng gọi từ bỏ monitor và nhập vào trạng tháingủ cho đến khi các dòng khác nhập vào cùng monitor và gọi phương thức notify(). Phương thức notify()và notifyAll() tạo ra dòng thông báo cho các dòng khác gọi phương thức wait() của cùng đối tượng.Trong bài học trước, chúng ta cũng học về các điều kiện bế tắc là gì và cách tránh chúng.
Nội dung trích xuất từ tài liệu:
CoreJava 9 - LUỒNG I/O (I/O Streams)Chương9 LUỒNGI/O(I/OStreams)Mục tiêuKếtthúcchương,bạncócóthể: Đềcậpđếncáckháiniệmvềluồng MôtảcáclớpInputStreamvàOutputStream MôtảI/OmảngByte ThựchiệncáctácvụđệmI/Ovàlọc DùnglớpRandomAccesFile. MôtảcáctácvụchuỗiI/Ovàkýtự DùnglớpPrinterWriter .9.1 Giới thiệu Trongbuổihọctrước,chúngta đã họcvề cácdòngSynchronized.ngăncácdòngxẩyraviệc chiasẽ(dùngchung)cácđốitượngmộtcáchđồngthời.Toànbộtiếntrìnhnàyđượcquảnlýbởicơchế đợithôngbáo(waitnotify).Phươngthứcwait()báochodònggọitừ bỏ monitorvà nhậpvàotrạngthái ngủchođếnkhicácdòngkhácnhậpvàocùngmonitorvàgọiphươngthứcnotify().Phươngthứcnotify()và notifyAll()tạoradòngthôngbáochocácdòngkhácgọiphươngthứcwait()củacùng đốitượng. Trongbàihọctrước,chúngtacũnghọcvềcácđiềukiệnbếtắclàgìvàcáchtránhchúng. Chươngnàygiớithiệukháiniệmvềluồng.Chúngtacũngthảoluậncáclớpkhácnhautronggói java.iotrợgiúpcáctácvụnhậpxuất..9.2 Các luồng Theothuậtngữchung,luồnglàmộtdònglưuchuyển.trongthuậtngữvềkỹthuậtluồnglàmộtlộtrìnhmàdữ liệuđượctruyềntrongmộtchươngtrình.Một ứngdụngvềcácluồngmata đãquenthuộc đólàluồngnhậpSystem.in. Luồnglà nhữngdàn ống(pipelines) để gửivà nhậnthôngtintrongcácchươngtrìnhjava.Khi mộtluồngdữliệuđượcgửihoặcnhân,tathamchiếunónhưđang“ghi”và“đọc”mộtluồngtheothứtựnêutrên.Khimộtluồng được đọchayghi,cácdòngkhácbị phongtoả.Nếucó mộtlỗixẩyrakhi đọc hayghiluồng,mộtIOexception đượckíchhoạt.Dovậy,cáccâulệnhluồngphảibaogồmkhốitrycatch.I/O Streams 1 Lớp‘java.lang.System’ địnhnghĩacácluồngnhậpvà xuấtchuẩn.chúnglà cáclớpchínhcủacácluồngbytemàjavacungcấp.Chúngtacũngđãsửdụngcácluồngxuấtđểxuấtdữliệuvàhiểnthịkếtquảtrênmànhình.LuồngI/Obaogồm:: LớpSystem.out:Luồngxuấtchuẩndùngđểhiểnthịkếtquảtrênmànhình. LớpSystem.in:Luồngnhậpchuẩnthường đếntừ bànphímvà đượcdùng để đọccácký tự dữ liệu. LớpSystem.err:Đâylàluồnglỗichuẩn. Cáclớp‘InputStream’và‘OutputStream’cungcấpnhiềukhảnăngI/Okhácnhau.Cảhailớpnàycó cáclớpconđểthựchiệnI/Othôngquacácvùngđệmbộnhớ,cáctậptinvàốngdẫn.Cáclớpcon củalớpInputStreamthựchiện đầuvào,trongkhicáclớpconcủalớpOutputStreamthựchiệnkết xuất..9.3 Gói java.ioCácluồnghệthốngrấtcó ích.Tuynhiên,chúngkhông đủmạnh để dùngkhi ứngphóvớiI/Othựctế. Góijava.iophảiđượcnhậpkhẩuvì mụcđíchnày.Chúngtasẽthảoluậntìmhiểuvềcáclớpthuộcgóijava.io.9.3.1LớpInputStreamLớpInputStreamlàmộtlớptrừutượng.Nóđịnhnghĩacáchnhậndữliệu.Điểmquantrọngkhôngnằm ở chổ dữ liệu đếtừ đâu,mà là nó có thểtruycập.LớpInputStreamcungcấpmộtsốphươngpháp đểđọcvàdùngcácluồngdữliệuđểlàmđầuvào.Cácphươngthứcnàygiúptatạo,đọcvàxửlýcácluồngđầuvào.Cácphươngthứcđượchiệntrongbản9.1Tênphươngthức Môtảread() Đọccácbytedữ liệutừ mộtluồng.Nếunhư khôngdữ liệu nàolà hợplệ,nó khoá phươngthức.Khimộtphươngthực đượckhoá,cácdòngthựchiệnđượcchờchođếnkhidữliệu hợplệ.read(byte[]) trả về byte được‘đọc’hay‘1’,nếunhư kếtthúccủamột luồngđãđến.nókíchhoạtIOExceptionnếulỗixảyra.read(byte[],int,int) Nócũngđọcvàomảngbyte.Nótrảvềsốbytethựcsựđược đọc. Khi kết thúc của một luồng đã đến. nó kích hoạt IOExceptionnếulỗixảyra.available() Phươngphápnàytrảvềsốlượngbytecó thể được đọcmà khôngbị phongtoả.Nó trả về số bytehợplệ.Nó không phảilà phươngthứchợplệ đángtincậy để thựchiệntiến trìnhxửlýđầuvào.2 Core Javaclose() Phươngthứcnày đóngluồng.Nó dùng để phóngthíchmọi tàinguyênkếthợpvớiluồng.Luônluônđóngluồngđểchắc chắn rằng luồng xử lý được kết thúc. Nó kích hoạt ...
Nội dung trích xuất từ tài liệu:
CoreJava 9 - LUỒNG I/O (I/O Streams)Chương9 LUỒNGI/O(I/OStreams)Mục tiêuKếtthúcchương,bạncócóthể: Đềcậpđếncáckháiniệmvềluồng MôtảcáclớpInputStreamvàOutputStream MôtảI/OmảngByte ThựchiệncáctácvụđệmI/Ovàlọc DùnglớpRandomAccesFile. MôtảcáctácvụchuỗiI/Ovàkýtự DùnglớpPrinterWriter .9.1 Giới thiệu Trongbuổihọctrước,chúngta đã họcvề cácdòngSynchronized.ngăncácdòngxẩyraviệc chiasẽ(dùngchung)cácđốitượngmộtcáchđồngthời.Toànbộtiếntrìnhnàyđượcquảnlýbởicơchế đợithôngbáo(waitnotify).Phươngthứcwait()báochodònggọitừ bỏ monitorvà nhậpvàotrạngthái ngủchođếnkhicácdòngkhácnhậpvàocùngmonitorvàgọiphươngthứcnotify().Phươngthứcnotify()và notifyAll()tạoradòngthôngbáochocácdòngkhácgọiphươngthứcwait()củacùng đốitượng. Trongbàihọctrước,chúngtacũnghọcvềcácđiềukiệnbếtắclàgìvàcáchtránhchúng. Chươngnàygiớithiệukháiniệmvềluồng.Chúngtacũngthảoluậncáclớpkhácnhautronggói java.iotrợgiúpcáctácvụnhậpxuất..9.2 Các luồng Theothuậtngữchung,luồnglàmộtdònglưuchuyển.trongthuậtngữvềkỹthuậtluồnglàmộtlộtrìnhmàdữ liệuđượctruyềntrongmộtchươngtrình.Một ứngdụngvềcácluồngmata đãquenthuộc đólàluồngnhậpSystem.in. Luồnglà nhữngdàn ống(pipelines) để gửivà nhậnthôngtintrongcácchươngtrìnhjava.Khi mộtluồngdữliệuđượcgửihoặcnhân,tathamchiếunónhưđang“ghi”và“đọc”mộtluồngtheothứtựnêutrên.Khimộtluồng được đọchayghi,cácdòngkhácbị phongtoả.Nếucó mộtlỗixẩyrakhi đọc hayghiluồng,mộtIOexception đượckíchhoạt.Dovậy,cáccâulệnhluồngphảibaogồmkhốitrycatch.I/O Streams 1 Lớp‘java.lang.System’ địnhnghĩacácluồngnhậpvà xuấtchuẩn.chúnglà cáclớpchínhcủacácluồngbytemàjavacungcấp.Chúngtacũngđãsửdụngcácluồngxuấtđểxuấtdữliệuvàhiểnthịkếtquảtrênmànhình.LuồngI/Obaogồm:: LớpSystem.out:Luồngxuấtchuẩndùngđểhiểnthịkếtquảtrênmànhình. LớpSystem.in:Luồngnhậpchuẩnthường đếntừ bànphímvà đượcdùng để đọccácký tự dữ liệu. LớpSystem.err:Đâylàluồnglỗichuẩn. Cáclớp‘InputStream’và‘OutputStream’cungcấpnhiềukhảnăngI/Okhácnhau.Cảhailớpnàycó cáclớpconđểthựchiệnI/Othôngquacácvùngđệmbộnhớ,cáctậptinvàốngdẫn.Cáclớpcon củalớpInputStreamthựchiện đầuvào,trongkhicáclớpconcủalớpOutputStreamthựchiệnkết xuất..9.3 Gói java.ioCácluồnghệthốngrấtcó ích.Tuynhiên,chúngkhông đủmạnh để dùngkhi ứngphóvớiI/Othựctế. Góijava.iophảiđượcnhậpkhẩuvì mụcđíchnày.Chúngtasẽthảoluậntìmhiểuvềcáclớpthuộcgóijava.io.9.3.1LớpInputStreamLớpInputStreamlàmộtlớptrừutượng.Nóđịnhnghĩacáchnhậndữliệu.Điểmquantrọngkhôngnằm ở chổ dữ liệu đếtừ đâu,mà là nó có thểtruycập.LớpInputStreamcungcấpmộtsốphươngpháp đểđọcvàdùngcácluồngdữliệuđểlàmđầuvào.Cácphươngthứcnàygiúptatạo,đọcvàxửlýcácluồngđầuvào.Cácphươngthứcđượchiệntrongbản9.1Tênphươngthức Môtảread() Đọccácbytedữ liệutừ mộtluồng.Nếunhư khôngdữ liệu nàolà hợplệ,nó khoá phươngthức.Khimộtphươngthực đượckhoá,cácdòngthựchiệnđượcchờchođếnkhidữliệu hợplệ.read(byte[]) trả về byte được‘đọc’hay‘1’,nếunhư kếtthúccủamột luồngđãđến.nókíchhoạtIOExceptionnếulỗixảyra.read(byte[],int,int) Nócũngđọcvàomảngbyte.Nótrảvềsốbytethựcsựđược đọc. Khi kết thúc của một luồng đã đến. nó kích hoạt IOExceptionnếulỗixảyra.available() Phươngphápnàytrảvềsốlượngbytecó thể được đọcmà khôngbị phongtoả.Nó trả về số bytehợplệ.Nó không phảilà phươngthứchợplệ đángtincậy để thựchiệntiến trìnhxửlýđầuvào.2 Core Javaclose() Phươngthứcnày đóngluồng.Nó dùng để phóngthíchmọi tàinguyênkếthợpvớiluồng.Luônluônđóngluồngđểchắc chắn rằng luồng xử lý được kết thúc. Nó kích hoạt ...
Tìm kiếm theo từ khóa liên quan:
lập trình với java ngôn ngữ java lý thuyết java giáo trình lập trình java core javaGợi ý tài liệu liên quan:
-
Bài toán phân luồng giao thông và ứng dụng
11 trang 180 1 0 -
7 trang 51 0 0
-
Giáo trình Lý thuyết và bài tập Java: Phần 1
420 trang 38 1 0 -
153 trang 33 0 0
-
Chương 1: Giới thiệu tổng quan Java
31 trang 30 0 0 -
A Guide To Advanced Java - Collections
1 trang 29 0 0 -
Bài giảng Lập trình Java căn bản: Chương 2 - ThS. Võ Đức Cẩm Hải
24 trang 29 0 0 -
Lập trình Java cơ bản- Bài 1 (Overview)
34 trang 26 0 0 -
Bài thuyết trình Cơ bản về Java
29 trang 25 0 0 -
Chương 2: Cơ bản về ngôn ngữ Java
59 trang 24 0 0 -
Distributed Computing in Java - Swing components and Dialog Box
1 trang 24 0 0 -
Giáo trình java cơ bản - Chương 5
45 trang 24 0 0 -
22 trang 23 0 0
-
20 trang 23 0 0
-
Java 6 Platform Revealed phần 1
24 trang 23 0 0 -
A Guide To Advanced Java - Java.io package
3 trang 23 0 0 -
Đề cương chi tiết học phần Lập trình IoT
14 trang 22 0 0 -
A Guide To Advanced Java - Generics
2 trang 22 0 0 -
42 trang 22 0 0
-
15 trang 21 0 0