Xử lý file trong Android với Xamarin (Bài 8)
Xử lý file trong android với xamarin bao gồm 2 xử lý đó là ghi dữ liệu vào file và đọc dữ liệu từ file. Về mặt lưu trữ, chúng ta có thể lưu trữ và đọc dữ liệu từ bộ nhớ thiết bị (internal storage) hoặc từ thẻ nhớ ngoài (external storage).
Vậy Khi nào chúng ta cần xử lý file? Bất cứ khi nào chúng ta cần lưu trữ dữ liệu trong ứng dụng.
Xử lý file trong android với xamarin – Xử lý file với bộ nhớ thiết bị
Ghi dữ liệu vào bộ nhớ thiết bị (Internal Storage)
try { string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); string filename = Path.Combine(path, "data1.txt"); using (var sw = new StreamWriter(filename, true)) { sw.WriteLine(txtContent.Text); } Toast.MakeText(this, "Done", ToastLength.Short).Show(); } catch (Exception ex) { }
Xử lý trên với mục đích lấy nội dung của EditText (txtContent) và lưu vào file tên data1.txt. Sau khi lưu vào file, ứng dụng sẽ thông báo “Done”.
Nếu chạy trên thiết bị giả lập (Android Emulator), chúng ta sử dụng Android Device Monitor (Tools -> Android -> Android Device Monitor)
Đọc dữ liệu từ bộ nhớ thiết bị (Internal Storage)
try { Stream fis = OpenFileInput("data1.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); Java.Lang.StringBuffer data = new Java.Lang.StringBuffer(); String line = ""; while ((line = br.ReadLine()) != null) { data.Append(line).Append('\n'); } Toast.MakeText(this, data.ToString(), ToastLength.Long).Show(); } catch (Exception ex) { }
Xử lý trên đọc dữ liệu từ data1.txt và hiển thị lên màn hình sử dụng Toast
Xử lý file trong android với xamarin – Xử lý file với thẻ nhớ
Ghi dữ liệu vào thẻ nhớ (External Storage)
try { Java.IO.File sdcard = Android.OS.Environment.ExternalStorageDirectory; Java.IO.File f = new Java.IO.File(sdcard, "data2.txt"); OutputStream os = new FileOutputStream(f, true); string data = txtContent.Text; os.Write(System.Text.Encoding.ASCII.GetBytes(data)); os.Close(); Toast.MakeText(this, "Done", ToastLength.Short).Show(); } catch (Exception ex) { }
File sau khi được tạo có tên data2.txt và nội dung được lấy từ txtContent. Sau khi lưu thành công, ứng dụng sẽ thông báo “Done”.
Lưu ý ứng dụng phải được cấp quyền ghi vào thẻ nhớ. Chi tiết xem Bài 3: Thiết lập permission trong Xamarin
Nếu chạy trên thiết bị giả lập (Android Emulator), chúng ta sử dụng Android Device Monitor
Đọc dữ liệu từ thẻ nhớ (External Storage)
try { Java.IO.File sdcard = Android.OS.Environment.ExternalStorageDirectory; Java.IO.File file = new Java.IO.File(sdcard, "data2.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String line; //Đọc dữ liệu từ file, nội dung sau khi đọc sẽ chứa trong biến content Java.Lang.StringBuilder content = new Java.Lang.StringBuilder(); while ((line = br.ReadLine()) != null) { content.Append(line).Append('\n'); } br.Close(); Toast.MakeText(this, content.ToString(), ToastLength.Long).Show(); } catch (Exception ex) { }
Xử lý trên đọc dữ liệu từ data2.txt và hiển thị lên màn hình sử dụng Toast
Xử lý file trong android với xamarin – Bài tập thực hành
Mô tả chức năng
Người dùng phải đăng nhập vào hệ thống bằng tài khoản của mình, trong trường hợp này sẽ sử dụng chức năng SIGN IN. Nếu chưa có tài khoản, người dùng sẽ sử dụng chức năng SIGN UP. Tuỳ chọn “Remember you information” sẽ ghi nhận thông tin đăng nhập cho lần đăng nhập tiếp theo.
Màn hình SignInActivity
Khi chọn chức năng “SIGN UP” – Màn hình SignUpActivity
Giao diện ứng dụng sau khi người dùng đăng nhập thành công – Màn hình CommentManagementActivity
Lưu ý
Đối với màn hình “SignInActivity”: người dùng phải nhập tên và mật khẩu.
Đối với màn hình “SignUpActivity”: tên đăng nhập không được trùng, không chứa khoảng trắng; Mật khẩu nhập 2 lần phải giống nhau và tối thiểu 8 ký tự. Chức năng “BACK” sẽ quay về màn hình SignInActivity.
Đối với màn hình “CommentManagementActivity”:
1/ Thêm comment: người dùng nhập nội dung comment vào ô “Enter your comment” => chọn “ADD” => lưu nội dung comment vào tập tin “comments.txt” => hiển thị nội dung comment theo định dạng “số thứ tự”. “Ngày tạo” – “Nội dung comment”
2/ Lọc comment: người dùng chọn nút “…”, hộp thoại chọn ngày tháng năm sẽ xuất hiện. Sau khi chọn ngày, ứng dụng sẽ hiển thị nội dung comment tương ứng với ngày tháng năm đã chọn.