Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

Bài 4.

Làm việc với


File Trong Java
Làm việc với console – Nhập
 Sử dụng lớp Scaner để đọc dữ liệu nhập từ bàn phím import
java.util.Scanner;
 Đọc số nguyên:
int a;
long b;
Scanner nhapDuLieu = new Scanner(System.in);
a = nhapDuLieu.nextInt();
b = nhapDuLieu.nextLong();
 Đọc số thực:
float c;
double d;
Scanner nhapDuLieu = new Scanner(System.in);
c = nhapDuLieu.nextFloat();
d = nhapDuLieu.nextDouble();

 Đọc chuỗi:
String ch;
Scanner nhapDuLieu = new Scanner(System.in);
ch = nhapDuLieu.nextLine();
Làm việc với console – Xuất
 Sử dụng thực viện java.io: cung cấp các hàm xử lí Nhập/Xuất trên các
thiêt bị chuẩn và các thiết bị ngoại vi.
 Xuất chuỗi:
System.out.print(“Hello world!”);
 Xuất chuỗi kèm biến
String hoten = “Nguyen Van A”
System.out.print(“Xin chao: ” + hoten);
 Xuất xong xuống dòng
System.out.println(“Hello world!”);
 Các ký tự đặc biệt khi xuất chuỗi:
 “\n”: xuống dòng
 “\t”: ký tự tab
Luồng dữ liệu
 Các loại luồng dữ liệu
Kiểu luồng nhập - xuất
 2 kiểu luồng trong Java:
Ghi file với luồng character
 Ưu điểm: có thể xử lý trực tiếp văn bản Unicode
 Sử dụng FileWriter để ghi dữ liệu
 Các bước thực hiện:
 B1: Tạo đối tượng luồng và liên kết với nguồn dữ liệu
File f = new File(“E:/mydata.txt");
FileWriter fw = new FileWriter(f);
 B2: Ghi dữ liệu

fw.write("Ghi dữ liệu bằng luồng character");

 B3: Đóng luồng

fw.close();
Đọc file với luồng character
 Sử dụng FileReader để đọc dữ liệu
 Các bước thực hiện:
 B1: Tạo đối tượng luồng và liên kết với nguồn dữ liệu
File f = new File(“E:/mydata.txt");
FileWriter fr = new FileWriter(f);
 B2: Đọc dữ liệu

BufferedReader br = new BufferedReader(fr);


String line;
while ((line = br.readLine()) != null)
System.out.println(line);

 B3: Đóng luồng

fr.close();
br.close();
Ghi file với luồng byte
 Ứng dụng Ghi dữ liệu nguyên thúy, kiểu dữ liệu kiểu đối tượng (object),
dữ liệu dạng nhị phân
 Lớp sử dụng : DataOutputStream
 Ví dụ: ghi dữ liệu vào d:/mydata.bin với DataOutputStream
//Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu
FileOutputStream fos = new FileOutputStream("d:/file/mydata.bin");
DataOutputStream dos = new DataOutputStream(fos);

//Bước 2: Ghi dữ liệu


dos.writeInt(100);
dos.writeDouble(9.5);

//Bước 3: Đóng luồng


fos.close();
dos.close();
Ghi dữ liệu object với luồng byte
Ví dụ: Tạo lớp Stock và lớp này phải cài đặt giao diện Serializable nhằm giúp đối
tượng này có thể chuyển đổi qua lại với dữ liệu luồng byte
public class Stock implements Serializable
{
private int id;
private String desc;
private double price;
private int quantity;

public Stock(int id, String desc, double price, int quantity)


{
this.id = id;
this.desc = desc;
this.price = price;
this.quantity = quantity;
}
@Override
public String toString()
{
return id + "-" + desc + "-" + price + "-" + quantity;
}
}
Ghi dữ liệu object với luồng byte
 Tạo lớp ObjectOutputExample dùng để ghi dữ liệu kiểu object

//Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu

FileOutputStream fos = new FileOutputStream("d:/mydata2.bin");


ObjectOutputStream oos = new ObjectOutputStream(fos);

//Khai báo mảng


Stock s[] = {
new Stock(1, "CD ROM", 100, 2)
,new Stock(2, "CPU", 500, 2)
,new Stock(3, "HP Scanner", 75, 1) };

//Bước 2: Ghi mảng đối tượng vào file


oos.writeObject(s);

//Bước 3: Đóng luồng


fos.close();
oos.close();
Đọc dữ liệu object với luồng byte
 Tạo lớp ObjectInputExample dùng để đọc dữ liệu kiểu object

//Bước 1: Tạo đối tượng luồng và liên kết nguồn dữ liệu


FileInputStream fis = new FileInputStream("d:/mydata2.bin");
ObjectInputStream ois = new ObjectInputStream(fis);

//Bước 2: Đọc dữ liệu


Stock sArr[] = (Stock[]) ois.readObject();
for(Stock s : sArr){
System.out.println(s.toString());
}

//Bước 3: Đóng luồng


fis.close();
ois.close();
Bài tập
 Tạo package tên file và thực hiện các yêu cầu bên dưới
 Bài thực hành số 1: Tạo lớp NhanVien có các thuộc tính mã nhân viên,
họ tên, tuổi và lương.
 Viết setter, getter, constructor và toString.
 Viết phương thức cho phép nhập thông tin cho 3 nhân viên từ bàn phím. Sử
dụng FileWriter để ghi thông tin vào nhanvien.txt.
 Viết phương thức để đọc nội dung file nhanvien.txt và in những gì đọc được
từ file ra màn hình.
 Bài thực hành số 2: Tạo lớp mới và thực hiện các xử lý sau
 Viết phương thức tạo mảng 3 nhân viên, nhập thông tin cho các nhân viên,
sử dụng ObjectOutputStream để ghi mảng đối tượng nhân viên vào file
nhanvien.bin
 Viết phương thức để đọc file nhanvien.bin và in mảng nhân viên ra màn
hình
Resources

 java.sun.com
 Java docs
 Java support forum : supportforum.sun.com
 Java tutorial
 …

You might also like