Wednesday, October 4, 2017

Đọc dữ liệu trong Java

Giả sử ta muốn đọc một bài thơ ghi trong file txt, khi tạo file txt, bạn nhớ khi save thì để dòng Encoding là UTF-8.

Tạo một folder có tên raw, copy bài thơ ở dạng txt vào đó.

Bây giờ tạo một class bất kỳ với giao diện gồm 3 textView, một để ghi tên bài thơ, một là nội dung, thứ ba tên tác giả.
Khai báo, tham chiếu địa chỉ các textView.
Copy đoạn code sau vào dưới dòng tham chiếu địa chỉ
InputStream in = this.getResources().openRawResource(R.raw.tho);
     try
      {
     byte[] buffer = new byte[in.available()];
     while (in.read(buffer) != -1);
     String jsontext = new String(buffer);

       tv2.setText(jsontext);           
          
     }
   catch (IOException e)
     {
             //return null;
}
Ấn tổ hợp Ctrl+Shift+O để nhập các thư viện cần dùng.
Trong đoạn code này, ta đọc file txt lưu trong file raw và set nội dụng ra textView tv2. Ghi thêm tên bài bài thơ là ”Chiều thu” vào textView tv, tác giả  Teika, một nhà thơ cổ điển Nhật vào textvew tv3.
Chạy ra màn hình, ta có kết quả như sau.

Có những trường hợp ta muốn đọc theo từng dòng, lấy kết quả mỗi dòng sẽ thành một phần từ trong mảng, ta sẽ làm như sau.
Khai báo một mảng arraylist.
ArrayList<String> ar = new ArrayList<String>();
Copy đoạn code sau thay vào đoạn trên.
String line = "";
     try {
InputStream  In = this.getResources().openRawResource(R.raw.tho);
              InputStreamReader inputReader = new InputStreamReader(In);
              BufferedReader BR = new BufferedReader(inputReader);
     while ((line = BR.readLine()) != null) {
          ar.add(line);
     }
     BR.close();

     } catch (IOException e) {
     e.printStackTrace();
}
     tv2.setText(ar.get(3));
Ở đây, ta đọc dữ liệu theo từng dòng vào mảng ar và lấy dòng thứ tư để set ra màn hình.


No comments:

Post a Comment