Lỗi đọc file trong java

Anh chị cho em hỏi tại sao đoạn code này không đọc được dữ liệu từ file ạ.
Em rất cảm ơn.

package testXuatNhapFile;
import java.io.*;
import java.util.ArrayList;

public class TestXuatNhapThuong {
	public static void main(String[] args) throws IOException, ClassNotFoundException {
		ArrayList<Something> sths = new ArrayList<Something>();
		Something sth1 = new Something("s1", 1, 2);
		Something sth2 = new Something("s2", 2, 3);
		Something sth3 = new Something("s3", 3, 4);
		sths.add(sth1);
		sths.add(sth2);
		sths.add(sth3);
		
		FileOutputStream fos = new FileOutputStream("sths.txt");
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		oos.writeObject(sths);
		oos.close();
		fos.close();
		
		FileInputStream fis = new FileInputStream("sth.txt");
		ObjectInputStream ois = new ObjectInputStream(fis);
		var result = (ArrayList)ois.readObject();
		for (var something : result) {
			((Something) something).display();
		}
		ois.close();
		fis.close();
	}
}
1 Like

Không code JAV nên k biết …
Cơ mà lỗi k đọc đc file thường là sai path, path k tồn tại hoặc k có quyền đọc ghi tệp…

4 Likes

Cậu có chắc là “không đọc được dữ liệu từ file” không? :smile:

Code của cậu, từ thông tin ở exception stack trace, gặp vấn đề ở đoạn ghi object vào file.

oos.writeObject(sths);

Để ghi được object vào file, class Something của cậu phải implements Serializable interface. Khi đó, object của cậu mới có thể được serialize thành bytestream và lưu vào file.

Thử sửa class Something theo các trên và chạy lại code nhé! :smile:

Hope it helps!

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?