Lập trình Java căn bản - Chương 5 Input – Output trong java
lượt xem 8
download
Mục tiêu: hiểu các khái niệm về dòng. Biết các lớp đảm nhiệm việc xuất nhập dữ liệu trong java. Biết cách sử dụng các lop81 io đề xuất dữ liệu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình Java căn bản - Chương 5 Input – Output trong java
- Chương 05 INPUT – OUTPUT TRONG JAVA M c tiêu 1. Hi u khái ni m v dòng. 2. Bi t các l p ñ m nhi m vi c vi c xu t nh p d li u trong Java. 3. Bi t cách s d ng các l p io ñ xu t nh p d li u v i màn hình và bàn phím. 4. Bi t cách xu t nh p d li u v i t p tin văn b n, t p tin ch a các d li u thu c ki u cơ b n, t p tin ch a d li u là các ñ i tư ng. 5. Bi t các interface và các l p qu n lý vi c in n. 1
- N i dung 10.1- Gi i thi u. 10.2- Dòng d li u. 10.3- Gói java.io và các dòng nh p xu t 10.4- L p System và thi t b xu t nh p chu n 10.5 – Thí d xu t nh p d li u v i t p tin văn b n 10.6- Tóm t t 10.1- Gi i thi u • Nh p d li u là tác v ñưa các d li u c th vào cho bi n trong chương trình. Như v y, ph i có m t ngu n ch a d li u (bàn phím, t p tin, bi n khác). • Xu t d li u là tác v ñưa tr c th c a bi n trong chương trình ra m t nơi ch a (màn hình hay file hay bi n khác). • Nh p/xu t d li u là các phương ti n mà chương trình tương tác v i user và thư ng không th thi u trong ña s các ng d ng. 2
- Gi i thi u ... • Hai cơ ch nh p xu t d li u có tương tác v i user: (1) Nh p xu t d li u trong các ng d ng console application, (2) Nh p/xu t d li u thông qua các ph n t trên GUI. Cách 1 thư ng dùng trong các ng d ng ch y theo cơ ch tu n t còn cách 2 ñư c áp d ng trong các ng d ng hư ng c a s . Gi i thi u • Buffered IO : Nh p xu t thông Keyboard qua b ñ m (m t vùng vùng nh trung gian • Nh p có ñ m (buffered Input) : Buffer D li u nh p ñư c ñ m l i không ñi vào bi n ngay l p t c. Thí d : Nh p 1 s ch k t thúc Variable khi gõ enter. • Xu t có ñ m (buffered output): Buffer D li u xu t ch ñư c xu t th c s khi b ñ m ñ y ho c khi g p m t tác v bu c xu t tư ng Screen minh (flush). 3
- Gi i thi u • T p tin là m t d li u mô t cho m t thông tin ñã hoàn t t. Do v y, t p tin có th là d li u ñ u vào c a chương trình và cũng có th là nơi ch a d li u ñ u ra c a chương trình. H u h t nh ng chương trình l n ñ u có thao tác v i t p tin. • Khi nh p xu t d li u có th gây ra l i Exception. Thí d : Nh p bi n s mà gõ ch , ñ c file vào bi n mà v trí ñ c là cu i file, ghi file mà ñĩa ñã h t dung lư ng,… Như v y, khi xu t nh p d li u, ngư i l p trình c n có bi n pháp qu n lý các l i xu t nh p b ng cú pháp try { TácV Nh pXu t()} catch (Exception e) { System.out.println("Error: " + e.toString()); } 10.2- Dòng- stream • Dòng: Là m t chu i các byte làm vi c theo cơ ch tu n t . • Khaí ni m dòng xu t phát t h ñi u hành UNIX. • Bàn phím là dòng nh p chu n, user gõ tu n t các phím chu i các byte ñi vào bi n. • Màn hình là dòng xu t chu n, d li u t bi n ñư c chuy n thành các ký t , ký s r i các byte này l n lư t ñư c xu t ra màn hình. 4
- Chu i, m ng, file ñ u là dòng... • Chu i ký t , m ng các byte ch a d li u ñư c chuy n vào cho bi n cũng làm vi c theo cơ ch chuy n t ng byte Chu i, m ng dòng nh p. Ngư c l i, có th ñưa d li u t bi n ra chu i, m ng Chu i, m ng tr thành dòng xu t. • File cũng là ngu n cung c p d li u cho bi n (file nh p), và cũng là nơi lưu tr d li u t bi n (file xu t). File làm vi c theo cơ ch t ng byte m t File là dòng. Buffer c a dòng : m ng lưu tr d li u Dòng nh p 1 Dòng xu t 1 Buffer Buffer Các d li u Các d li u qu n lý qu n lý Buffer ñóng vai trò trung chuy n d li u data Var1 data D li u c a Buffer Buffer Var2 dòng xu t có Các d li u Các d li u th l i là d li u qu n lý qu n lý c a dòng nh p Dòng nh p 2 data khác Dòng xu t 2 5
- 10.3- IO classes trong gói java.io L p tr u tư ng trên cùng L p tr u tư ng trên cùng java.io.InputStream java.io.OutputStream Dòng nh p byte v t lý Dòng xu t byte v t lý X lý t ng byte m t X lý t ng byte m t Bi n / Đ i tư ng Dòng nh p ký t Dòng xu t ký t X lý theo ñơn v 2 byte X lý theo ñơn v 2 byte L p tr u tư ng trên cùng L p tr u tư ng trên cùng java.io.Reader java.io.Writer Phân c p các l p nh p theo byte v t lý 6
- Phân c p các l p xu t theo byte v t lý Phân c p các l p nh p theo ký t 7
- Phân c p các l p xu t theo ký t Phân c p các l p thao tác file v i h ñi u hành L p File giúp truy xu t các thu c tính c a 1 file/thư m c. L p FileDescriptor: Giúp ñ ng b vi c truy xu t file. L p RandomAccessFile giúp ñ c/ghi file v i d li u thu c ki u cơ b n 8
- Các interface ñư c khai báo trong java.io 10.3.1- Các dòng tr u tư ng byte-v t lý InputStream/OutputStream • Là hai l p tr u tư ng ñ nh nghĩa nh ng thao tác truy xu t d li u cơ b n (m c khái quát) theo t ng byte v t lý mà không phân bi t ngu n d li u là lo i gì (file, chu i,…). • Các l p d n xu t t hai l p này nh m c th hóa các dòng nh p xu t byte v t lý tùy t ng tình hu ng. 9
- Abstract class InputStream Method Summary constructor InputStream() int available() : Tr v s bytes còn có th ñư c ñ c (hay ñã b b qua) void close() : Đóng dòng, tr tài nguyên ñã ñư c liên k t v i dòng void mark(int readlimit) – Đánh d u v trí hi n hành, readlimit là s byte có th ñư c ñ c trư c khi v trí ñánh d u không còn h p l boolean markSupported() - Ki m tra dòng có cho phép ñánh d u và reset không? abstract int read() Đ c 1 byte k ti p t dòng int read(byte[] b) : Đ c dòng ra m ng các byte int read(byte[] b, int off, int len) Đ c len bytes t dòng lưu vào m ng b t ph n t th off void reset() Quay tr l i v trí v a ñư c ñánh d u do method mark long skip(long n) B qua n bytes d li u t dòng Abstract OutputStream Method Summary constructor OutputStream() void close() – ñóng dòng xu t, tr tài nguyên void flush() Cư ng b c ghi d li u vào dòng xu t void write(byte[] b) : Ghi m ng các byte lên dòng void write(byte[] b, int off, int len) Ghi len byte t ph n t th off c a m ng lên dòng xu t abstract void write(int b) Ghi 1 byte vào dòng xu t 10
- 10.3.2- L p ByteArrayInputStream L p ByteArrayOutputStream • Là hai l p con tương ng c a InputStream và OutputStream. • Là hai dòng xu t nh p d ng m ng các bytes. • D li u c a l p ByteArrayInputStream: byte [] buf : m ng các byte d li u, int count : s byte hi n có int mark: v trí ñánh d u hi n hành, int pos: v trí hi n hành. • D li u c a l p ByteArrayOutputStream: byte [] buf : m ng các byte d li u, int count : s byte hi n có L p ByteArrayInputStream L p ByteArrayOutputStream • Constructors ByteArrayInputStream(byte[] buf) T o 1 a ByteArrayInputStream v i b ñ m ñã có. ByteArrayInputStream(byte[] buf, int offset, int length) T o 1 a ByteArrayInputStream v i b ñ m ñã có k t v trí offset v i kích th c length. ByteArrayOutputStream() T o 1 m ng m i làm vai trò output stream. ByteArrayOutputStream(int size) T o 1 m ng m i làm vai trò output stream v i kích thư c size bytes 11
- ByteArrayInputStream methods • Các hành vi c a l p cha InputStream ñư c c th hóa. ByteArrayOutputStream methods • Các hành vi c a l p cha OutputStream ñư c c th hóa. 12
- Ví d v ByteArray Input/Output Stream • Có d li u String S = "Ve ve ve, mua he sang"; • Chương trình s ghi chu i này lên 1 ByteArrayOutputStream, sau ñó l y buffer c a ByteArrayOutputStream chuy n sang 1 ByteArrayInputStream. Đ c t ByteArrayInputStream ra bi n, xu t bi n. • Chương trình cũng minh h a vi c truy xu t kích thư c buffer Ví d v ByteArray Input/Output Stream 13
- 10.3.3- L p File • Giúp truy xu t thu c tính file và thư m c. • Bao gói các ñ i tư ng file c a h th ng máy ch , giúp truy xu t h th ng thư m c t p tin: T o/xóa thư m c-t p tin, truy xu t các thu c tính file… L p File.... 14
- L p File... Minh h a truy xu t thu c tính File Hành vi lastModified() tr v 1 s long mô t chênh l nh mili giây k t January 1, 1970, 00:00:00 GMT. Thông qua 1 ñ i tư ng Date ñ i chênh l ch mili giây này tr l i thành ngày gi GMT 15
- Minh h a truy xu t thư m c ../ ch th cho thư m c cha c a thư m c hi n hành 10.3.4- L p FileInputStream, FileOutputStream • Là các l p cho vi c ñ c/ghi file theo t ng byte v t lý. • L p FileInputStream là con c a l p InputStream • L p FileOutputStream là con c a l p OutputStream 16
- L p FileInputStream • Constructors FileInputStream (File f) // f ñã có FileInputStream (FileDescriptor fdesc) FileInputStream (String FileName) • Methods Ngoài nh ng methods ñư c override t các phương th c c a l p cha InputStream (read(...),...), có 2 hành vi ñư c thêm vào: protected void finalize() throws IOException: Đóng dòng (file) FileDescriptor getFD() : L y file descriptor k t n i v i file th c mà ñ i tư ng FileInputStream này s d ng. L p FileOutputStream • Constructors FileOutputStream (File f) // f ñã có FileOutputStream (File f, boolean append) // f ñã có FileOutputStream (FileDescriptor fdesc) // fdesc ñã có FileOutputStream (String FileName) FileOutputStream (String FileName, boolean append) • Methods Ngoài nh ng methods ñư c override t các phương th c c a l p cha OutputStream, có 2 hành vi ñư c thêm vào: protected void finalize() throws IOException : Đóng dòng (file) FileDescriptor getFD() : L y file descriptor k t n i v i file th c mà ñ i tư ng FileOutputStream này s d ng. 17
- Minh h a 10.3.5- L p RandomAccessFile • Cung c p kh năng di chuy n t i lui trong file vì xem ñơn v lưu tr trong file là byte. Do v y có th ñ c/ghi file t i nh ng v trí ñã ñư c ch ñ nh (nên g i là random access). • L p RandomAccessFile cung c p c 2 tác v ñ c/ghi d li u. Do v y l p này có th dùng ñ ñ c/ghi các d li u thu c ki u cơ b n. • Có các hành vi readXXX(), writeXXX() ñ ñ c ghi các d li u thu c ki u cơ b n. 18
- L p RandomAccessFile... • Constructors RandomAccessFile(File f, String mode) RandomAccessFile(String Filename, String mode) mode Ý nghĩa "r" M file ch ñ ñ c , có th gây l i IOException. "rw" M file ñ ñ c + ghi. N u file chưa có thì s t o m i file này. "rws" M file ñ ñ c + ghi. N u có hi u ch nh n i dung hay d li u mô t file (metadata) thì ñòi h i ph i ñư c ghi ñ ng b . "rwd" M file ñ ñ c + ghi và m i khi có hi u ch nh n i dung file thì ph i ñư c ñ ng b . L p RandomAccessFile... RandomAccessFile Method Summary void close() – Đóng file. FileChannel getChannel() L y ñ i tư ng FileChannel k t h p v i . FileDescriptor getFD() L y FileDescriptor. long getFilePointer() - L y v trí truy xu t hi n hành. long length() - L y ñ9 dài file. int read() Đ c 1 byte. void write(int b) ghi 1 byte vào v trí hi n hành int read(byte[] b) Đ c 1 m ng byte- tr v s byte ñ c ñư c. void write(byte[] b) ghi m ng b int read(byte[] b, int off, int len) void write(byte[] b, int off, int len) Đ c/ghi len byte ñưa vào m ng b t v trí off, tr v s byte ñ c ñư c. boolean readBoolean() Đ c/ghi 1 tr boolean. void writeBoolean (boolean v) byte readByte() Đ c.ghi 1 tr 8 bit có d u. void writeByte ( int x) char readChar() - Đ c 1 ký t Unicode . void writeChar( int v) ghi 1 ký t 2 byte, byte cao ghi trư c double readDouble() Đ c/ ghi 1 tr double. void writeDouble ( double x) – ghi d ng longbits 8 bytes 19
- L p RandomAccessFile... float readFloat() Đ c/ ghi 1 tr float. void writeFloat( float x) ghi d ng intbit 4 bytes void readFully(byte[] b) Đ c ra c 1 m ng byte t v trí hi n hành. void readFully(byte[] b, int off, int len) Đ c len byte t v trí hi n hành ñưa vào v trí off c a m ng b. int readInt() Đ c 1 s integercó d u 32 bit . void writeInt(int x) String readLine() Đ c 1 dòng k t v trí hi n hành. long readLong() Đ c 1 s long có d u (64 bit). void writeLong(long x) , 8 byte, byte cao ghi trư c short readShort() Đ c 1 s short có d u (16 bit). void writeShort(short x) int readUnsignedByte() Đ c 1 byte không d u (8 bit). int readUnsignedShort() Đ c 1 s short không d u (16 bit). String readUTF() Đ c 1 chu i. void writeUTF(String S) ghi chu i d ng mã UTF-8 ñ c l p máy ch void seek(long pos) Nh y ñ n v trí pos t ñ u file. void setLength(long newLength) n ñ nh ñ dài file. int skipBytes(int n) B qua n bytes. void writeBytes(String s) Ghi chu i d ng nhóm các bytes. void writeChars(String s) Ghi chu i d ng nhóm ký t . Minh h a l p RandomAccessFile 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình Java căn bản
193 p | 1459 | 722
-
Thực hành lập trình nhúng căn bản Buổi 3
15 p | 351 | 106
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 351 | 104
-
Bài giảng Lập trình Java cơ bản
239 p | 230 | 63
-
Bài giảng Lập trình Java căn bản: Chương 2 - ThS. Võ Đức Cẩm Hải
24 p | 19 | 8
-
Bài giảng Lập trình Java căn bản: Chương 6.2 - ThS. Võ Đức Cẩm Hải
30 p | 18 | 8
-
Lập trình Java căn bản - Giới thiệu
11 p | 110 | 8
-
Giáo trình Cơ sở lập trình java căn bản (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
139 p | 35 | 7
-
Bài giảng Lập trình Java căn bản: Chương 0 - ThS. Võ Đức Cẩm Hải
22 p | 10 | 6
-
Bài giảng Lập trình Java căn bản: Chương 9 - ThS. Võ Đức Cẩm Hải
50 p | 8 | 5
-
Bài giảng Lập trình Java căn bản: Chương 8 - ThS. Võ Đức Cẩm Hải
48 p | 15 | 5
-
Bài giảng Lập trình Java căn bản: Chương 7 - ThS. Võ Đức Cẩm Hải
29 p | 12 | 5
-
Bài giảng Lập trình Java căn bản: Chương 5 - ThS. Võ Đức Cẩm Hải
56 p | 14 | 5
-
Bài giảng Lập trình Java căn bản: Chương 4 - ThS. Võ Đức Cẩm Hải
27 p | 14 | 5
-
Bài giảng Lập trình Java căn bản: Chương 3 - ThS. Võ Đức Cẩm Hải
61 p | 12 | 5
-
Bài giảng Lập trình Java căn bản: Chương 10 - ThS. Võ Đức Cẩm Hải
87 p | 9 | 5
-
Bài giảng Lập trình Java căn bản: Chương 6.1 - ThS. Võ Đức Cẩm Hải
44 p | 8 | 4
-
Bài giảng Lập trình java: Chương 2 - ThS. Hoàng Mạnh Hà
25 p | 93 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn