Chương 5 - Luồng và tập tin pdf

52 304 0
Chương 5 - Luồng và tập tin pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Chương 5: Luồng và tập tinChương 5: Luồng và tập tin GVLT: Trần Anh Dũng 2 Nội dungNội dung  Nhập xuất dữ liệu  Khái niệm về luồng dữ liệu  Luồng và tệp  Luồng byte  Luồng ký tự  Lớp File  Truy cập tệp tuần tự  Truy cập tệp ngẫu nhiên 3 Nhập/Xuất dữ liệu (1)Nhập/Xuất dữ liệu (1)  Nhập xuất dữ liệu trong Java dựa trên mô hình luồng dữ liệu Lớp System có: in, out System.out là 1 thể hiện của lớp PrintStream. PrintStream có phương thức print, println ñể ghi dữ liệu xuống luồng. Your Program File(s) Another Program Other Devices 4 Nhập/Xuất dữ liệu (2)Nhập/Xuất dữ liệu (2) ðọc dữ liệu Open a Stream While more Information Read Close the Stream Ghi dữ liệu Open a Stream While more Information Write Close the Stream 5 Luồng dữ liệu (data streams)Luồng dữ liệu (data streams)  Chương trình Java nhận và gửi dữ liệu thông qua các ñối tượng là các thực thể thuộc một kiểu luồng dữ liệu nào ñó.  Luồng (stream) là một dòng dữ liệu ñến từ một nguồn (source) hoặc ñi ñến một ñích (sink)  Nguồn và ñích có thể là tệp (file), bộ nhớ, một tiến trình (process), hay thiết bị (bàn phím, màn hình, …)  Luồng nhập & luồng xuất 6 IO classes trong gói java.ioIO classes trong gói java.io Biến / ðối tượng Dòng nhập byte vật lý Xử lý từng byte một Dòng nhập ký tự Xử lý theo ñơn vị 2 byte Dòng xuất byte vật lý Xử lý từng byte một Dòng xuất ký tự Xử lý theo ñơn vị 2 byte Lớp trừu tượng trên cùng java.io.InputStream Lớp trừu tượng trên cùng java.io.OutputStream Lớp trừu tượng trên cùng java.io.Reader Lớp trừu tượng trên cùng java.io.Writer 7 Luồng nhập Luồng nhập –– bytebyte DataInputStream InputStream PipedInputStream FilterInputStream StringBufferInputStream ByteArrayInputStream FileInputStream ObjectInputStream SequenceInputStream PushbackInputStream BufferedInputStream LineNumberInputStream 8 Luồng xuất Luồng xuất –– bytebyte PrintStream OutputStream FilterOutputStream ByteArrayOutputStream PipedOutputStream FileOutputStream ObjectOutputStream DataOutputStream BufferedOutputStream 9 Phân cấp các lớp nhập theo ký tựPhân cấp các lớp nhập theo ký tự Reader StringReader PipedReader InputStreamReader BufferedReader CharArrayReader LineNumberReader FileReader FilterReader PushbackReader 10 Phân cấp các lớp xuất theo ký tựPhân cấp các lớp xuất theo ký tự Writer StringWriter PrintWriter OutputStreamWriter BufferedWriter CharArrayWriter FileWriter PipedWriter FilterWriter [...]... buf[]) int write(char buf[], int offset, int len) void close() 15 ð i tư ng vào/ra ð nh p ho c xu t d tư ng vào ho c ra li u, chúng ta ph i t o ra ñ i ð i tư ng vào ho c ra thu c ki u lu ng tương ng và ph i ñư c g n v i m t ngu n d li u ho c m t ñích tiêu th d li u 16 S d ng b ñ m B ñ m k thu t tăng tính hi u qu c a thao tác vào/ra ð c và ghi d li u theo kh i Gi m s l n thao tác v i thi t b Thay vì... linh ho t Java h tr ñ c/ghi các ñ i tư ng (object) m t cách ñơn gi n hơn thông qua l p ObjectInputStream và ObjectOutputStream M t ñ i tư ng mu n có th ñư c ñ c/ghi ph i cài ñ t giao ti p java.io.Serializable 27 Ví d - ð c/Ghi ñ i tư ng Ghi ñ i tư ng ra file 28 Ví d - ð c/Ghi ñ i tư ng ð c ñ i tư ng t file 29 Ví d - ð c/Ghi ñ i tư ng t t o class Student.java import java.io.Serializable; public class Student... System.out.println (ex.getMessage()); } 31 Ví d - ð c/Ghi ñ i tư ng t t o ð c ñ i tư ng t t o try { FileInputStream g = new FileInputStream("student.dat"); ObjectInputStream inStream = new ObjectInputStream(g); Student a = (Student)inStream.readObject(); System.out.println (a.getInfo()); Student b = (Student)inStream.readObject(); System.out.println (b.getInfo()); inStream.close(); }catch(ClassNotFoundException... b vi c truy xu t file L p RandomAccessFile: Giúp ñ c/ghi file ng u nhiên 33 L p File M t trong các ngu n và ñích d li u thông thư ng là t p L p File cung c p các ch c năng cơ b n ñ thao tác v i t p N m trong gói java.io T o t p, m t p, các thông tin v t p và thư m c Cho phép l y thông tin v file và thư m c 34 T o ñ i tư ng File File myFile; myFile = new File(“data.txt”); myFile = new File(“myDocs”,... treadUnsignedShort() String readUTF() int skipBytes(int n) 24 Ví d - ð c/Ghi d li u nguyên th y import java.io.*; public class DataIODemo { public static void main(String[] args) { try { DataOutputStream out = new DataOutputStream(new FileOutputStream("D:/BTJava/TestIO.txt")); out.writeInt(10); out.writeLong(123 456 789); out.writeDouble(123. 456 789); out.writeFloat(123. 456 789f); out.writeBoolean(true); out.writeUTF("Day... theo kh i Có th ghi vào th i ñi m b t kỳ b ng phương th c flush() Thay vì ñ c tr c ti p t thi t b ñ ct b ñ m Khi b ñ m r ng, d li u ñư c ñ c theo kh i t thi t b 17 Nh p xu t qua thi t b chu n System.out cho phép in ra lu ng ra chu n Là ñ i tư ng c a l p PrintStream System.err cho phép in ra lu ng thông báo l i chu n Là ñ i tư ng c a l p PrintStream System.in cho phép ñ c vào t thi t b vào chu n Là ñ i... out.writeDouble(123. 456 789); out.writeFloat(123. 456 789f); out.writeBoolean(true); out.writeUTF("Day la mot xau ki tu"); out.close(); } catch (IOException e) { System.out.println(e.getMessage()); } 25 Ví d - ð c/Ghi d li u nguyên th y //ð c d li u ñã ghi t file try { DataInputStream in = new DataInputStream(new FileInputStream("D:/BTJava/TestIO.txt")); System.out.println("Gia tri nguyen " + in.readInt());... Student implements Serializable{ private String name; private int age; public Student(String name, int age){ this.name = name; this.age = age; } public String getInfo(){ String ret="My name is "+name+"\nI am "+age+" years old."; return ret; } } 30 Ví d - ð c/Ghi ñ i tư ng t t o Ghi ñ i tư ng t t o try { FileOutputStream f = new FileOutputStream("student.dat"); ObjectOutputStream oStream = new ObjectOutputStream(f);... p PrintStream System.err cho phép in ra lu ng thông báo l i chu n Là ñ i tư ng c a l p PrintStream System.in cho phép ñ c vào t thi t b vào chu n Là ñ i tư ng c a l p InputStream 18 ð c d li u t lu ng vào chu n System.in không s d ng ñư c tr c ti p Chúng ta mu n ñ c m t dòng ký t 1 T o ñ i tư ng lu ng ký t (InputStreamReader) 2 T o ñ i tư ng lu ng có b ñ m (BufferedReader) 19 Ví d InputStreamReader... BufferedReader in = new BufferedReader(reader); String s; try { s = in.readLine(); } catch (Exception e) { } 20 ð c/Ghi ki u d li u nguyên th y ð ñ c/ghi các ki u d li u nguyên th y, ta s lu ng DataInputStream và DataOutputStream d ng Các phương th c ñư c ñ nh nghĩa trong giao di n DataOutput: void write(byte[] b) void write(byte[] b, int off, int len) void write(int b) void writeBoolean(boolean v) void writeByte(int . 1 Chương 5: Luồng và tập tinChương 5: Luồng và tập tin GVLT: Trần Anh Dũng 2 Nội dungNội dung  Nhập xuất dữ liệu  Khái niệm về luồng dữ liệu  Luồng và tệp  Luồng byte  Luồng ký tự . Stream 5 Luồng dữ liệu (data streams )Luồng dữ liệu (data streams)  Chương trình Java nhận và gửi dữ liệu thông qua các ñối tượng là các thực thể thuộc một kiểu luồng dữ liệu nào ñó.  Luồng (stream). từ luồng vào chuẩnðọc dữ liệu từ luồng vào chuẩn  System.in không sử dụng ñược trực tiếp  Chúng ta muốn ñọc một dòng ký tự 1. Tạo ñối tượng luồng ký tự (InputStreamReader) 2. Tạo ñối tượng luồng

Ngày đăng: 27/07/2014, 19:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan