Bài giảng Lập trình Java (Java Programming) - Chương 3: Luồng xuất nhập trong Java

Exception là gì ?

Định nghĩa (Oracle’s java document)

An exception is an event, which occurs during the execution of a

program, that disrupts the normal flow of the program’s instructions.

Ví dụ

* Thực hiện phép toán chia cho 0.

* Parse chuỗi "abc" thành số nguyên.

pdf 24 trang phuongnguyen 5800
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java (Java Programming) - Chương 3: Luồng xuất nhập trong Java", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java (Java Programming) - Chương 3: Luồng xuất nhập trong Java

Bài giảng Lập trình Java (Java Programming) - Chương 3: Luồng xuất nhập trong Java
Chương 3: LUỒNG NHẬP XUẤT TRONG JAVA
Khoa CNTT
ĐH GTVT TP.HCM
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 1 / 24
Nội dung
1 Biệt lệ (Exception)
2 Khái niệm luồng (Stream)
3 Nhập/Xuất chuẩn
4 Truy xuất File
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 2 / 24
Exception là gì?
Định nghĩa (Oracle’s java document)
An exception is an event, which occurs during the execution of a
program, that disrupts the normal flow of the program’s instructions.
Ví dụ
* Thực hiện phép toán chia cho 0.
* Parse chuỗi "abc" thành số nguyên.
* ...
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 3 / 24
Phân loại Exception
Checked Exception
* Được sử dụng trong signature của method
* Được kiểm tra tại thời điểm complile-time
* Có ý nghĩa là: đây là phương thức có thể gây ra "lỗi" vì vậy khi
sử dụng nó cần phải "bắt - catch" ngoại lệ.
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 4 / 24
Phân loại Exception
Checked Exception - Ví dụ: method có khai báo exception
static public int chia(int s1, int s2) throws
Exception {
return s1 / s2;
}
Checked Exception - Ví dụ: gọi method ở trên
try {
double kq = ExcepDemo.chia(10, 0);//method call
System.out.println("ket qua = " + kq);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 5 / 24
Phân loại Exception
Unchecked Exception
* Được sử dụng trong khối lệnh try ... catch ...
* Được kiểm tra tại thời điểm run-time
Lệnh try catch
try {
//khoi lenh co kha nang xay ra loi
} catch (Exception ex) {
//khoi lenh xu ly khi xay ra loi
}
finally{
//khoi lenh luon duoc thu hien du xay ra loi hay khong
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 6 / 24
Stream trong Java
Stream là gì?
* In computer science Streams are defined as the sequence of data
elements that is made available over time. It represents a Source
(which generates the data in the form of Stream) and a
destination (which consumes or read data available as Stream).
* In other simple words it is a flow of data from which you can
read or write data to it.
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 7 / 24
Stream trong Java
Input stream
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 8 / 24
Stream trong Java
Output stream
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 9 / 24
Stream trong Java
Hierarchy of classes to deal with Input and Output streams:
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 10 / 24
Nhập/Xuất chuẩn trong Java (Standard Streams)
Các packages xuất nhập chuẩn
* System.in = bàn phím
* System.out = màn hình
* System.err → thông báo lỗi
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 11 / 24
Nhập/Xuất chuẩn trong Java
Nhập dữ liệu từ bàn phím
int a, b, c;
Scanner s = new Scanner(System.in);//su dung System.in
System.out.print("Nhap a, b, c: ");
a = s.nextInt();
b = s.nextInt();
c = s.nextInt();
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 12 / 24
Nhập/Xuất chuẩn trong Java
Xuất dữ liệu ra màn hình
System.out.println("a = " + a);
Hoặc:
String kq = String.format("max(%d,%d,%d) = %d",
a,b,c,m);
System.out.println(kq);
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 13 / 24
Truy xuất File
Các trường hợp truy xuất file:
* Truy xuất file nhị phân: dữ liệu trong file được xem như dãy các
bytes nhị phân.
* Truy xuất file văn bản: dữ liệu trong file được xem như dãy các
mã Unicode của các kí tự.
* Serialize & Deserialize: truy xuất file lưu trữ các objects.
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 14 / 24
Truy xuất File
Ghi file nhị phân
public static void ghiFile() {
FileOutputStream out = null;
try {File f = new File("tho.dat");
out = new FileOutputStream(f);
String s = "Khi ta o chi la noi dat o";
out.write(s.getBytes());//ghi day bytes.
} catch (Exception ex) {/*xu ly exception o
day*/}
finally {
try {out.close();
} catch (IOException ex) {/*xu ly
exception o day*/}
}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 15 / 24
Truy xuất File
Đọc file nhị phân
public static void docFile() {
FileInputStream in = null;
try {File f = new File("tho.dat");
in = new FileInputStream(f);
int kq;
do {kq = in.read();
System.out.print((char) kq);
} while (kq != -1);
} catch (Exception ex) {/*...*/}
finally {
try {in.close();
} catch (IOException ex) {/*...*/}
}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 16 / 24
Truy xuất File
Ghi file văn bản
public static void ghiFile() {
File f = new File("vanban.txt");
FileWriter fw = null;
try {fw = new FileWriter(f);
fw.write("Khi ta o chi la noi dat o");
fw.write(System.getProperty("line.separator"));
fw.write("Khi ta di dat bong hoa tam hon");
} catch (Exception ex) {/*...*/}finally {
try {fw.close();
} catch (IOException ex) {/*...*/}
}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 17 / 24
Truy xuất File
Đọc file văn bản: đọc từng kí tự
public static void docFile() {
File f = new File("vanban.txt");
FileReader fr = null;
try {if (!f.exists()) {throw new
Exception("File khong ton tai");}
fr = new FileReader(f);
int kq;
while ((kq = fr.read()) != -1)
{System.out.print((char) kq);}
} catch (Exception ex) {/*...*/}finally {
try {fr.close();
} catch (IOException ex) {/*...*/}
}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 18 / 24
Truy xuất File
Đọc file văn bản: đọc từng dòng
public static void docFileByScanner() {
try {File f = new File("vanban.txt");
if (!f.exists()) {
throw new Exception("File khong ton tai");}
Scanner scan = new Scanner(f);
String line;
while (scan.hasNextLine()) {
line = scan.nextLine();
System.out.println(line);
}
scan.close();
} catch (Exception ex) {/*...*/}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 19 / 24
Truy xuất File
Đọc file văn bản: sử dụng buffer
public static void docFileByBufferChar() {
try {
File f = new File("vanban.txt");
FileReader read = new FileReader(f);
BufferedReader b = new
BufferedReader(read);
String d;
while ((d = b.readLine()) != null) {
System.out.println(d);
}
b.close();
} catch (Exception ex) {/*...*/}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 20 / 24
Serialize & Deserialize
Serialize
public static void ghiDSHHSerialize() {
File f = new File("hh.dat");
FileOutputStream fo = null;
ObjectOutputStream out = null;
try {fo = new FileOutputStream(f);
out = new ObjectOutputStream(fo);
out.writeObject(HangHoa.dsHangHoa());//note!
} catch (Exception ex) {/*...*/} finally {
try {out.close();
fo.close();
} catch (IOException ex) {/*...*/}
}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 21 / 24
Serialize & Deserialize
Deserialize
public static void docDSHHSerialize() {
File f = new File("hh.dat");
FileInputStream fo = null;
ObjectInputStream out = null;
try {fo = new FileInputStream(f);
out = new ObjectInputStream(fo);
ArrayList lst;
lst = (ArrayList)out.readObject();
for(HangHoa h:lst)
System.out.println(h.toString());
} catch (Exception ex) {/*...*/} finally {
try {out.close();fo.close();
} catch (IOException ex) {/*...*/}}
}
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 22 / 24
Bài tập:
Bài tập
Sử dụng các kiến thức của chương này (exception & streams), xây
dựng chương trình minh họa quá trình mua bán hàng hóa. Gồm các
chức năng sau:
1 Hiển thị danh sách hàng hóa.
2 Cho phép chọn chức năng mua hàng.
3 Hiển thị thông tin giỏ hàng.
4 Cho phép cập nhật giỏ hàng.
5 Lưu hóa đơn mua hàng.
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 23 / 24
—Hết—
Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 24 / 24

File đính kèm:

  • pdfbai_giang_lap_trinh_java_java_programming_chuong_3_luong_xua.pdf