intTypePromotion=1
ADSENSE

Java IO Stream

Chia sẻ: Nguyễn Hoàng Trung | Ngày: | Loại File: PDF | Số trang:49

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

Luồng là một dòng chảy của dữ liệu được gắn với các thiết bị vào ra. hai loại luồng: luồng nhập gắn với các thiết bị nhập tư màn hình, máy scan, file; luồng xuất gắn với các thiết bọ xuất như màn hình máy in file....Việc xử lý vào ra thông qua luồng giúp cho lập trình viên không phải quan tâm đến bản chất của thiết bị ra vào.

Chủ đề:
Lưu

Nội dung Text: Java IO Stream

  1. Java IO Stream 1
  2. N i dung Lu ng nh p xu t là gì? Các lo i lu ng Phân c p l p lu ng Dùng Stream đ đi u khi n lu ng nh p xu t. Byte streams Character streams Buffered streams Standard I/O streams Data streams Object streams L p File 2
  3. Khái ni m lu ng? Lu ng là m t “dòng ch y” c a d li u đư c g n v i các thi t b vào ra. Hai lo i lu ng: Lu ng nh p: G n v i các thi t b nh p như bàn phím, máy scan, file... Lu ng xu t: G n v i các thi t b xu t như màn hình, máy in, file... Vi c x lý vào ra thông qua lu ng giúp cho l p trình viên không ph i quan tâm đ n b n ch t c a thi t b vào ra. 3
  4. Input Stream Chương trình s d ng input stream đ đ c d li u t ngu n. 4
  5. Output Stream Chương trình s d ng output stream đ ghi d li u xu ng đích. 5
  6. Các lo i lu ng Character and Byte Streams Character vs. Byte Input and Output Streams D a trên ngu n và đích Node and Filter Streams Khi d li u trong lu ng đư c thao tác ho c chuy n đ i. 6
  7. Character and Byte Streams Byte streams Cho d li u d ng nh phân Nh ng l p g c cho các byte stream: L p InputStream L p OutputStream C 2 l p là tr u tư ng (Abstract) Character streams Cho các ký t Unicode Nh ng l p g c cho character stream: L p Reader L p Writer C 2 l p là tr u tư ng (Abstract) 7
  8. Input and Output Streams Input or source streams Có th đ c t nh ng ngu n này. Nh ng l p g c c a t t c các input stream: L p InputStream L p Reader Output or destination streams Có th ghi xu ng nh ng lu ng này Nh ng l p g c c a t t c các output stream: L p OutputStream L p Writer 8
  9. Node and Filter Streams Node streams (Data sink stream) Ch a nh ng ch c năng cơ b n cho vi c đ c và ghi t m t v trí xác đ nh. Các lo i node stream bao g m file, b nh và pipe Filter streams (Processing stream) Lu ng l c có kh năng k t n i v i các lu ng khác và x lý d li u “theo cách riêng” c a nó. FilterInputStream và FilterOutputStream là 2 l p lu ng l c c ơ b n. 9
  10. Hierarchy of classes and interfaces Object File FileDescriptor DataInput RandomAccessFile DataOutput InputStream OutputStream ByteArray FileInput Filter ByteArray Filter FileOutput InputStream Stream OutputStream OutputStream InputStream Stream DataInput Buffered LineNumber PushBack DataOutput Stream InputStream InputStream InputStream Stream Buffered Print OutputStream Stream 10
  11. Hierarchy of classes and interfaces Object Reader Writer Piped String Filter Piped String Buffered Buffered Filter Reader Reader Writer Writer Writer Reader Writer Reader CharArray InputStream CharArray OutputStream Print Reader Reader Writer Writer Writer Print LineNumberReader FileReader Stream PushbackReader 11
  12. Abstract Classes InputStream & OutputStream Reader & Writer 12
  13. InputStream Abstract Class public abstract int read() throws IOException Đ c m t byte k ti p c a d li u t lu ng. public int read(byte[] bBuf) throws IOException Đ c m t s byte d li u t lu ng và lưu vào m ng byte bBuf. public int read(byte[] cBuf, int offset, int length) throws IOException Đ c length byte d li u t lu ng và lưu vào m ng byte cBuf b t đ u t i v trí offset. public void close() throws IOException Đóng ngu n. G i nh ng phương th c khác sau khi đó ngu n s gây ra l i IOException public int mark(int readAheadLimit) throws IOException Đánh d u v trí hi n hành c a stream. Sau khi đánh d u, g i reset() s đ nh l i v trí c a lu ng đ n đi m này. Không ph i t t c lu ng byte –input h tr cho thao tác này. public int markSupported() Ch ra lu ng có h tr thao tác mark và reset hay không 13
  14. Node InputStream Classes FileInputStream Đ c các byte t file ByteArrayInputStream Th c thi m t buffer mà nó ch a các byte, mà nó có th đư c đ c t ngu n. PipedInputStream Nên đư c liên k t v i PipedOutputStream. Nh ng lu ng này đư c s d ng b i 2 lu ng. Trong đó m t cái là đ c d li u t ngu n trong khi nh ng cái khác thì ghi xu ng PipedOutputStream tương ng. 14
  15. Filter InputStream Classes BufferedInputStream M t class con c a FilterInputStream cho phép đ t vùng đ m cho input đ đ c các byte d li u m t cách hi u qu . FilterInputStream For reading filtered byte streams, which may transform the basic source data along the way and provide additional functionalities. ObjectInputStream Used for object serialization. Deserializes objects and previuosly written using an ObjectOutputStream. DataInputStream A subclass of FilterInputStream that lets an application read Java primitive data from underlying inputstream in a machine-independent way. LineNumberInputStream A subclass of FilterInputStream that allows tracking of the current line number. PushbackInputStream A subclass of FilterInputStream class that allows bytes to be pushed back or unread into the stream 15
  16. L p tr u tư ng OutputStream public void write(int b) throws IOException Ghi giá tr b xác đ nh theo d ng byte xu ng output stream public void write(byte[] b) throws IOException Lưu n i dung c a m ng byte b xu ng lu ng public void write(byte[] b, int off, int len) throws IOException Lưu len byte c a m ng byte b xu ng lu ng, b t đ u t v trí off c a m ng public void close() throws IOException Đóng ngu n. G i nh ng phương th c khác liên quan đ n ngu n này sau khi g i close se gây ra l i IOException. public void flush() throws IOException flushes the stream.(ví d : Nh ng byte đư c lưu trong buffer ngay l p t c đư c ghi xu ng đích) 16
  17. Node OutputStream Classes FileOuputStream For writing bytes to a file ByteArrayOutputStream Implements a buffer that contains bytes, which may be written to the stream PipedOutputStream Should be connected to a PipedInputStream. These streams are typically used by two threads wherein one of these threads writes data to this stream while the other thread reads from the corresponding PipeInputStream. 17
  18. Filter OutputStream Classes BufferedOutputStream A subclass of FilterOutputStream that allows buffering of output in order to provide for the efficient writing of bytes. Allows writing of bytes to the underlying output stream without necessarily causing a call to underlying system for each byte written. FilterOutputStream For writing filtered byte streams, which may transform the basic source of data along the way and provide additional functionalities. ObjectOutputStream Used for object serialization. Serializes object and primitve data to OuputStream. DataOutputStream A subclass of FilterOutputStream that lets an application write Java primitive data to underlying output stream in machine-independent way. PrintStream A subclass of FilteOutputStream that provides capability for printing representations of various data values conveniently. 18
  19. The Reader Class: Methods public int read() throws IOException Đ c m t ký t public int read(char[] cbuf) throws IOException Đ c nh ng ký t và lưu chúng vào m ng cbuf public abstract int read(char[] cbuf, int off, int len) throws IOException Đ c len ký t và lưu chúng vào tron m ng cbuf, b t đ u t i v trí off c a m ng public abstract void close() throws IOException Đóng lu ng. G i nh ng phương th c Reader khác c a sau khi g i close s gây ra l i IOException public void mark(int readAheadLimit) throws IOException Đánh d u v trí hi n hành c a stream. Sau khi đánh d u, g i reset() đ th đ t l i v trí lu ng t i đi m này. Không ph i t t c character-input đ u h tr thao tác này public boolean markSupported() Ch ra lu ng có h tr thao tác này hay không. M c đ nh là không h tr . public void reset() throws IOException Đ t l i v trí lu ng t i v trí đánh d u l n cu i 19
  20. Node Reader Classes FileReader Cho vi c đ c t file CharArrayReader Th c thi m t vùng đ m ký t có th đư c đ c StringReader Cho vi c đ c t ngu n string PipedReader Dùng theo c p (tương ng v i PipedWriter) b ng 2 lu ng mà chúng có th liên l c v i nhau.M t trong nh ng cái lu ng đ c các ký t . 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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