Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
186,48 KB
Nội dung
Các luồng vào / ra Các luồng vào ra 2 NguyễnViệtHà Nội dung Khái niệm về luồng dữ liệu Luồng và tệp Lớp File Truy cập tệp tuần tự Truy cập tệp ngẫu nhiên Các luồng vào ra 3 NguyễnViệtHà Tài liệu tham khảo Thinking in Java, chapter 12 Java how to program, chapter 17 Các luồng vào ra 4 NguyễnViệtHà Luồng dữ liệu (data streams) Chương trìnhJava 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 đếntừ một nguồn (source) hoặc đi đếnmột đích (sink) Nguồnvàđíchcóthể là tệp (file), bộ nhớ, mộttiến trình (process), hay thiếtbị (bàn phím, màn hình, …) Các luồng vào ra 5 NguyễnViệtHà Luồng byte và char Luồng byte: thao tác theo đơn vị byte InputStream OutputStream Luồng char: thao tác vớikýtự Reader Writer Các luồng vào ra 6 NguyễnViệtHà InputStream int read() int read(byte buf[]) int read(byte buf[], int offset, int length) void close() Các luồng vào ra 7 NguyễnViệtHà OutputStream int write(int c) int write(byte buf[]) int write(byte buf[], int offset, int length) void close() void flush() Các luồng vào ra 8 NguyễnViệtHà Reader int read() int read(char buf[]) int read(char buf[], int offset, int length) void close() Các luồng vào ra 9 NguyễnViệtHà Writer int write(int c) int write(char buf[]) int write(char buf[], int offset, int length) void close() void flush() Các luồng vào ra 10 NguyễnViệtHà Phả hệ của InputStream [...]... 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ì ghi trực tiếp tới thiết bị thì chương trình ghi lên bộ đệm khi bộ đệm đầy thì dữ liệu được ghi ra thiết bị 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ị thì chương trình đọc từ bộ đệm khi bộ đệm rỗng thì dữ liệu được đọc theo khối từ thiết bị Nguyễn Việt Hà Các luồng vào ra... } catch (IOException e) { } Nguyễn Việt Hà Các luồng vào ra 18 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 Nguyễn Việt Hà Các luồng vào ra 19 Tạo đối tượng File File myFile; myFile = new File(“data.txt”); myFile = new File(“myDocs”, “data.txt”); Thư mục... e) { } } } Nguyễn Việt Hà Các luồng vào ra 28 Ví dụ: Ghi ra (cont.) class Abc { public String write() { String buf; buf += return buf; } } Nguyễn Việt Hà Các luồng vào ra 29 Ví dụ: File copy import java. io.*; public class CopyFile { public static void main(String args[]) { try { FileReader src = new FileReader(args[0]); BufferedReader in = new BufferedReader(src); FileWriter des = new FileWriter(args[1]);... in.readLine(); while (s != null) { out.println(s); s = in.readLine(); } in.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } } Nguyễn Việt Hà Các luồng vào ra 30 Ví dụ: File copy (2) import java. io.*; public class CopyFile2 { public static void main(String args[]) { try { FileReader src = new FileReader(args[0]); FileWriter des = new FileWriter(args[1]); char buf[] = new char[128]; int charsRead;... DataOutputStream: ghi các dữ liệu nguyên thủy writeBoolean, writeByte, writeChar, writeShort, writeInt, writeLong, writeFloat, writeDouble Nguyễn Việt Hà Các luồng vào ra 33 Ghi dữ liệu nguyên thủy (tuần tự) import java. io.*; public class TestDataOutputStream { public static void main(String args[]) { int a[] = {2, 3, 5, 7, 11}; try { FileOutputStream fout = new FileOutputStream(args[0]); DataOutputStream dout =... DataOutputStream(fout); for (int i=0; i . Thinking in Java, chapter 12 Java how to program, chapter 17 Các luồng vào ra 4 NguyễnViệtHà Luồng dữ liệu (data streams) Chương trình Java nhận và. hoặc đi đếnmột đích (sink) Nguồnvàđíchcóthể là tệp (file), bộ nhớ, mộttiến trình (process), hay thiếtbị (bàn phím, màn hình, …) Các luồng vào ra 5 NguyễnViệtHà