intTypePromotion=1
ADSENSE

Bài giảng Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất

Chia sẻ: Gió Biển | Ngày: | Loại File: PDF | Số trang:56

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

Bài giảng "Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất" cung cấp cho người đọc các kiến thức: Định dạng nhập/xuất, khái niệm luồng, các luồng byte, các luồng ký tự, file truy cập ngẫu nhiên, luồng nhập/xuất đối tượng,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình Java - Chương 4.1: Nhập xuất

  1. Chương 4.1 Nhập xuất
  2. Chương 4.1: Nhập xuất o Định dạng nhập/xuất o Khái niệm luồng o Các luồng byte o Các luồng ký tự o File truy cập ngẫu nhiên o Luồng nhập/xuất đối tượng. o Nhập/xuất với Scanner. o Nhập/xuất với JOptionPane
  3. Định dạng nhập xuất o Sử dụng hàm printf() và println() để định dạng kiểu dữ liệu ở console. Mã định dạng Mô tả %d Kết quả định dạng như một số nguyên thập phân %f Kết quả định dạng như là một số thực %o Kết quả định dạng như là một số Octal (Cơ số 8) Kết quả định dạng như là một số thập phân trong %e kiểu số khoa học %n Kết quả được hiển thị trong một dòng mới
  4. Định dạng nhập xuất o Ví dụ: Thực hiện đoạn chương trình sau: public static void main(String[] args){ float i = 8; float j = 3; System.out.println(“Ket qua cua i/j la: “ + i/j); System.out.printf(“Ket qua cua i/j la %.2f”, i/j); } o Kết quả:
  5. Luồng (Stream) o 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. o 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,…
  6. Các luồng cơ bản o Byte streams  Hỗ trợ việc xuất nhập dữ liệu trên byte, thường được dùng khi đọc ghi dữ liệu nhị phân.  InputStream: Luồng nhập byte cơ bản  OutputStream: Luồng xuất byte cơ bản o Character streams  Cho các ký tự Unicode  Reader: Luồng nhập ký tự cơ bản  Writer: Luồng xuất ký tự cơ bản
  7. Các luồng cơ bản o Các lớp luồng nằm 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
  8. Luồng byte o input stream: sử dụng để đọc dữ liệu. o output stream: sử dụng để ghi dữ liệu.
  9. Cây thừa kế InputStream
  10. Các phương thức của InputStream int available( ) Trả về số luợng bytes có thể đọc được từ luồng nhập void close( ) Đóng luồng nhập và giải phóng tài nguyên hệ thống gắn với luồng. Không thành công sẽ ném ra một lỗi IOException void mark(int numBytes) Đánh dấu ở vị trí hiện tại trong luồng nhập boolean markSupported( ) Kiểm tra xem luồng nhập có hỗ trợ phương thức mark() và reset() không. int read( ) Đọc byte tiếp theo từ luồng nhập int read(byte buffer[ ]) Đọc buffer.length bytes và lưu vào trong vùng nhớ buffer. Kết quả trả về số bytes thật sự đọc được int read(byte buffer[ ], int Đọc numBytes bytes bắt đầu từ địa chỉ offset và lưu vào trong offset, int numBytes) vùng nhớ buffer. Kết quả trả về số bytes thật sự đọc được void reset( ) Nhảy con trỏ đến vị trí được xác định bởi việc gọi hàm mark() lần sau cùng. long skip(long numBytes) Nhảy qua numBytes dữ liệu từ luồng nhập
  11. Cây thừa kế OutputStream
  12. Các phương thức của OutputStream void close( ) Đóng luồng xuất và giải phóng tài nguyên hệ thống gắn với luồng. Không thành công sẽ ném ra một lỗi IOException void flush( ) Ép dữ liệu từ bộ đệm phải ghi ngay xuống luồng (nếu có) void write(int b) Ghi byte dữ liệu chỉ định xuống luồng void write(byte buffer[ ]) Ghi buffer.length bytes dữ liệu từ mảng chỉ định xuống luồng void write(byte buffer[ ], int Ghi numBytes bytes dữ liệu từ vị trí offset của mảng chỉ định offset, int numBytes) buffer xuống luồng
  13. Đọc dữ liệu từ file o Mở một file để đọc dữ liệu FileInputStream(String fileName) throws FileNotFoundException Nếu file không tồn tại: thì ném ra FileNotFoundException o Đọc dữ liệu: dùng phương thức read() int read( ) throws IOException: đọc từng byte từ file và trả về giá trị của byte đọc được. Trả về -1 khi hết file, và ném ra IOException khi có lỗi đọc. o Đóng file: dùng phương thức close() void close( ) throws IOException: sau khi làm việc xong cần đóng file để giải phóng tài nguyên hệ thống đã cấp phát cho file. 13
  14. Ghi dữ liệu từ file o Mở một file để ghi dữ liệu FileOutputStream(String fileName) throws FileNotFoundException Nếu file không tạo được: thì ném ra FileNotFoundException o Ghi dữ liệu xuống: dùng phương thức write() void write(int byteval) throws IOException: ghi một byte xác định bởi tham số byteval xuống file, và ném ra IOException khi có lỗi ghi. o Đóng file: dùng phương thức close() void close( ) throws IOException: sau khi làm việc xong cần đóng file để giải phóng tài nguyên hệ thống đã cấp phát cho file.
  15. Sử dụng FileInputStream & FileOutputStream //Ví dụ chép dữ liệu từ file doc.txt sang ghi.txt import java.io.*; public class DocFile1 { public static void main(String[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream(“d:/doc.txt"); out = new FileOutputStream(“d:/ghi.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } }finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } }
  16. Ví dụ import java.io.*; public class ReadFile { public static void main(String[] args){ try { FileInputStream f = new FileInputStream("readme.txt"); int ch; while ( (ch = f.read()) != -1 ) { System.out.print((char)ch); } f.close(); } catch (FileNotFoundException d) { System.out.println("File not found"); } catch (IOException d) { System.out.println("Can not read file"); } }}
  17. Ví dụ import java.io.*; public class WriteFile { public static void main(String[] args) { byte buffer[] = new byte[80]; try { System.out.println("Enter a string to write to file: "); int num = System.in.read(buffer); FileOutputStream f = new FileOutputStream("line.txt"); f.write(buffer, 0, num); f.close(); } catch (IOException e) { System.out.println("Error IO file"); } }}
  18. Luồng ký tự (Character Stream) o Java platform lưu trữ những giá trị ký tự theo dạng Unicode o Tất cả các lớp character stream được kế thừa từ Reader và Writer o Có các lớp character stream:  FileReader  FileWriter
  19. Đọc ghi dữ liệu nhị phân • Để đọc và ghi những giá trị nhị phân của các kiểu dữ liệu trong java, chúng ta sử dụng: – DataInputStream – DataOutputStream. 19
  20. Đọc ghi dữ liệu nhị phân void writeBoolean(boolean val) Ghi xuống luồng một giá trị boolean được xác định bởi val. void writeByte (int val) Ghi xuống luồng một byte được xác định bởi val. void writeChar (int val) Ghi xuống luồng một Char được xác định bởi val. void writeDouble(double val) Ghi xuống luồng một giá trị Double được xác định bởi val. void writeFloat (float val) Ghi xuống luồng một giá trị float được xác định bởi val. void writeInt (int val) Ghi xuống luồng một giá trị int được xác định bởi val. void writeLong (long val) Ghi xuống luồng một giá trị long được xác định bởi val. void writeShort (int val) Ghi xuống luồng một giá trị short được xác định bởi val. Contructor: DataOutputStream(OutputStream outputStream) OutputStream: là luồng xuất dữ liệu. Để ghi dữ liệu ra file thì đối tượng outputStream có thể là FileOutputStream. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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