데이터 구조에 정의 된 일부 객체 목록 목록이 있습니다. List> someObject1 = new ArrayList();Java에서 ObjectInputStream을 사용하여 파일에서 객체 목록을 읽는 방법?
그리고 나는 fileXY 사용 기능 writeData는에 몇 someObject라는 항목을 작성했습니다 : 이제
void writeData(List <List<Integer>> someObject1, File XY) throws IOException {
try(ObjectOutputStream outFile = new ObjectOutputStream(new FileOutputStream(XY,true)))
outFile.writeObject(someObject1);
}
catch(IOException ex) { ex.printStackTrace(); }
}
나는 기능되어, readData 사용하여 읽으려고 :
void readData(File XY) throws IOException {
try (ObjectInputStream inFile=new ObjectInputStream(new FileInputStream(XY))) {
List <List <MyClass>> someObject2=(List <List <MyClass>>)inFile.readObject();
}
catch(IOException ex) { ex.printStackTrace(); }
}
를하지만 나에게 오류를주고있다 :
java.io.OptionalDataException
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1363)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
아무도 도와 줄 수 있습니까? 이 데이터 구조를 읽는 동안 캐스팅에 문제가 있습니까?
이 객체의 단지 목록 있었다면 같은 일이리스트의 목록 객체에 대해 작동하지 않는 이유는, 내가
(List<MyClass>).
와의 readObject()를 주조하여 읽을 수 있 었는가? 이것은 확실히 나를 위해 작동
public class MyClass implements Serializable {
private long aa;
private List <Integer> bb;
public MyClass(long a,List <Integer> b) {
aa=a;
bb=b;
}
public long getA() {
return aa;
}
public List<Integer> getB() {
return bb;
}
}
이 코드를 포함 할 수 있습니다 :
이 한 번 봐? –'MyClass'의 관련 부분도 포함 할 수 있습니까? 그것은 사용자 정의 readObject()/writeObject() 메소드가 있습니까? 그렇다면 보여주십시오. – EJP
쓰기/읽기 후에'ObjectOutputStream'과'ObjectInputStream'을 닫는 것을 잊지 마십시오! – JNevens