Wednesday, October 4, 2017

Ghi dữ liệu trong Java

Để ghi dữ liệu, ta dùng lớp FileOutputStream.
Vẫn ở class đang thực hành, bạn chọn một textView bất kỳ để dùng.
Copy đoạn code sau vào dưới dòng tham chiếu địa chỉ findViewByid.
String vao="Đây là dòng ghi vào";
try {
FileOutputStream fos = openFileOutput("ghivao.txt", Context.MODE_APPEND);
OutputStreamWriter osw = new OutputStreamWriter(fos);
     osw.append(vao);
     osw.flush();
     osw.close();
      } catch (FileNotFoundException e) {         
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }  
Ở đây ta ghi một chuỗi vào thành file có tên ghivao.txt, để biết đã ghi được chưa, ta sẽ đọc file đó rồi set ra textView đã chọn.
String docra="";
try {
              String FILE_NAME = "ghivao.txt";          
              FileInputStream fIS = openFileInput(FILE_NAME);          
              byte[] arrayData = new byte[fIS.available()];
              if((fIS.read(arrayData))!= -1){
              String fileContent = new String(arrayData);
              docra=fileContent;
              tv.setText(docra);
              }   
              fIS.close();           
          } catch (Exception e) {
             
              //Log.e("Error", e.toString());
          }
Ta mở file cần đọc là cái vừa ghi vào, đọc file đó rồi set dữ liệu ra textView.
Chạy thử để thấy dòng chữ đã được đọc ta, tức là trước đó nó được ghi vào thành công.
Nếu bạn thoát rồi mở lại class này nhiều lần, bạn sẽ thấy cứ mỗi lần lại có thêm dòng chữ “Đây là dòng ghi vào” được ghi nối vào đuôi.

Đó là vì file đã ghi trước vẫn ở đó, nên dữ liệu cứ thế thêm vào. Vì đây chỉ là ví dụ nên điều đó không ảnh hưởng đến lệnh ghi và đọc. Vấn đề là ta đã biết cách ghi và đọc file đó ra.


No comments:

Post a Comment