intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình Java căn bản - Chương 5 Input – Output trong java

Chia sẻ: Nguyễn Doãn Mạnh Đoàn | Ngày: | Loại File: PDF | Số trang:44

70
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Lập trình Java căn bản - Chương 5 Input – Output trong java

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2