Lỗi không hiện text from file trong objects

Bạn đã biết ghi dữ liệu vào file dưới dạng text, có thể mở file ra xem bởi các text editor như notepad, notepad++, sublime text,…Nhưng có điều bạn hay thao tác với dữ liệu đối tượng, muốn lưu trữ lại dữ liệu của các đối tượng để lần sau đọc và sử dụng mà không phải nhập lại dữ liệu cho chương trình.

Java hỗ trợ bạn làm điều đó. Object Java có thể ghi vào file để lưu trữ, tái sử dụng. Đây gọi là Serialization. Để ghi đối tượng (Object) vào file trong Java bạn phải implement interface Serializable và sử dụng ObjectOutputStream để ghi.

FileOutputStream fout = new FileOutputStream("C:\data\diemthi.bin"); ObjectOutputStream oos = new ObjectOutputStream(fout); oos.writeObject(diemthi);

Tạo class “DiemThi” implement interface Serializable. Đối tượng tạo từ lớp này sẽ được ghi vào file.

Nếu lỡ bạn quên implement Serializable từ class kia thì sao? Tức nhiên đối tượng của bạn sẽ không ghi được vào file.

package com.ngockhuong; import java.io.Serializable; public class DiemThi implements Serializable { private static final long serialVersionUID = 1L; private String hoTen; private float diemTrungBinh; public DiemThi() { } public DiemThi(String hoTen, float diemTrungBinh) {

this.hoTen = hoTen;  
this.diemTrungBinh = diemTrungBinh;  
} public String getHoTen() {
return hoTen;  
} public void setHoTen(String hoTen) {
this.hoTen = hoTen;  
} public float getDiemTrungBinh() {
return diemTrungBinh;  
} public void setDiemTrungBinh(float diemTrungBinh) {
this.diemTrungBinh = diemTrungBinh;  
} }

2. Ghi đối tương (Object) vào file

Thực hiện ghi đối tượng DiemThi có dữ liệu (“Lâm Ngọc Khương”, 9) vào file có tên “diemthi.bin” tại địa chỉ “C:\data\diemthi.bin

Mở file diemthi.bin bằng text editor hay một trình IDE cao cấp có xem được nội dung không? Bạn hãy thử xem, toàn những ký tự mà bạn không thể đọc được, khi mở bằng sublime text thì hiện ra toàn số, notepad++ thì có xem được vài chữ nhưng vẫn không hiểu được, notepad thì bỏ cuộc,…bạn thử xem sao nhá 🙂

package com.ngockhuong; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class WriteObject { public static void main(String[] args) {

WriteObject obj = new WriteObject();
DiemThi diemThi = new DiemThi();  
diemThi.setHoTen("Lâm Ngọc Khương");  
diemThi.setDiemTrungBinh(9);  
obj.serializeDiemThi(diemThi);  
} public void serializeDiemThi(DiemThi diemThi) {
FileOutputStream fout = null;  
ObjectOutputStream oos = null;  
try {
  fout = new FileOutputStream("C:\\data\\diemthi.bin");  
  oos = new ObjectOutputStream(fout);  
  oos.writeObject(diemThi);
  System.out.println("Xong!");  
} catch (Exception ex) {  
  ex.printStackTrace();  
} finally {  
  if (fout != null) {  
    try {  
      fout.close();  
    } catch (IOException e) {  
      e.printStackTrace();  
    }  
  }
  if (oos != null) {  
    try {  
      oos.close();  
    } catch (IOException e) {  
      e.printStackTrace();  
    }  
  }  
}  
} public void serializeDiemThiJDK7(DiemThi diemThi) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C:\\data\\diemthi.bin"))) {  
  oos.writeObject(diemThi);  
  System.out.println("Xong!");  
} catch (Exception ex) {  
  ex.printStackTrace();  
}  
} }

[alert-success]

Tóm lại

Muốn ghi được đối tượng vào file, class định nghĩa cho đối tượng phải implement interface Serializable. Và, file được ghi dưới dạng đối tượng trong Java không thể mở bằng các editor. Muốn đọc được dữ liệu, bạn sẽ phải sử dụng cách đọc đối tượng (Object) đã lưu từ file trong Java 🙂

+ Cách 1: Trên thanh Toolspace>thẻ Prospector>nhấn dấu + mục Surface để mở rộng, nhấn chuột phải vào mục Drawing Objects của bề mặt cần thêm và chọn Add…

Lỗi không hiện text from file trong objects

+ Cách 2: Với trường hợp bề mặt đã thêm đối tượng vào trên bản vẽ nhấn chọn bề mặt cần thêm. Trên thanh Ribbon>thẻ TIN Surface>bảng Modify>Add Data>Drawing Object

Lỗi không hiện text from file trong objects

+ Cách 3: Gõ lệnh AddSurfaceDrawingObjects trên thanh Command line

Bước 2: Hộp thoại Add Points From Drawing Objects, chú ý:

+ Object type: Kiểu đối tượng, Civil 3D hỗ trợ các kiểu đối tượng sau:

+ Points: các điểm

+ Lines: các đường thẳng

+ Blocks: các đối tượng block

+ Text: các đối tượng text

+ 3D Faces:

+ Polyface:

+ Description: Nhập mô tả

Lỗi không hiện text from file trong objects

1. Với trường hợp đối tượng Text:

Trước khi thêm dữ liệu vào bề mặt vừa tạo cần chuyển toàn bộ đối tượng Text sang Elevation. Để chuyển đối tượng text sang Elevation, vào mục như hình dưới rồi chọn toàn bộ đối tượng text cần chuyển đổi. Chú ý: tắt hết layer của các đối tượng khác trừ đối tượng text cần chuyển đổi (tên MCN,…) nhằm tránh sai lệch trong dữ liệu bề mặt.

Có thể kiểm tra một cách đơn giản để biết dữ liệu đã chuyển đổi bằng cách chọn 1 đối tương Text trước và sau chuyển đổi nhấn chuột phải chọn Properties như hình dưới.

Lỗi không hiện text from file trong objects

Lỗi không hiện text from file trong objects
Lỗi không hiện text from file trong objects
Lỗi không hiện text from file trong objects

Tiếp theo, chuyển sang thanh Toolspace và nhấn dấu + cho mặt phẳng cần thêm đối tượng Text đến khi mở hết các mục rồi nhấn chuột phải mục Drawing Object chọn Add…như hình dưới.

Trong hộp thoại Add points From Drawing Object, chọn Text trong mục Object type.

Tiếp theo, chọn toàn bộ các đối tượng Text vừa chuyển đổi ở bước trước rồi nhấn Enter để kết thúc. Khi đó Civil 3D sẽ tạo bề mặt từ các đối tượng này với đường bao mặc định.

2. Với trường hợp đối tượng Block:

About the author: NgoQuocViet View all posts by NgoQuocViet

Với mong muốn chia sẻ về ứng dụng phân mềm Civil 3D trong điều kiện của Việt Nam, tác giả hoan nghênh mọi đóng góp ý kiến nhằm ngày càng hoàn thiện hơn nữa trang Civil 3D VN.