2013-03-25 1 views
1

클래스 개체를 /에서 파일에 쓰거나 읽으려고합니다.
저는 D를 처음 접했고 그걸로 조금 연주하고 싶습니다.클래스 개체를 파일에 쓰거나 읽거나, D-Lang

개체를 파일에 쓰거나 파일에서 읽고 쓰는 클래스/함수가 있습니까?
나는 자바에서 ObjectOutputStream сlass와 (과) 비슷한 것을 찾고 있습니다.

또는 객체의 변수를 파일의 문자열로 직렬화 (연결)해야합니까?

나는 Movie 클래스와 동적 무비 배열을 포함하는 MovieManager 클래스를 가지고 있습니다.

Movie 개체는 몇 개의 문자열과 정수 값을 포함합니다.

+0

포럼 객체 직렬화에 대한 포럼 스레드 : http : //forum.dlang. org/thread/[email protected] – sigod

+0

고마워요! 바로 그게 내가 찾고있는 것입니다. 부끄러운 줄 알아, 나 스스로 찾지 못했다 .. – lush

답변

2

주석에서 제공된 대답을 확장하면, 최적의 단일 파일이 될 수 없으므로 파일에서 /에서 개체를 읽거나 쓰는 "진정한 방법"을 제공하지 않는다는 것이 명시 적으로 가치가 있습니다. 속도, 결과 파일 형식, 참조 처리 및 유사한 구석의 경우에 대한 다른 고려 사항에 따라 일련 화 전략이 달라질 수 있습니다.

가장 가능성있는 적절한 직렬화 라이브러리가 필요하며, 행운의 기회를 통해 가장 성숙한 D 솔루션 (Jacob Carlborg의 "Orange"https://github.com/jacob-carlborg/orange) 중 하나가 현재 표준 라이브러리에 포함될 후보로 검토되고 있습니다 std.serialization : newsgroup thread입니다. 최선의 방법이 될 수 있습니다.

1

라이브러리 Unmanaged은 직렬화 시스템을 제공합니다. 관리되지 않는 직렬화는 직렬화 할 객체가 프레임 워크 기본 클래스 중 하나의 조상 인 경우에만 작동하므로 덜 제한적인 Orange 도 있습니다.하지만 ... 관리되지 않는 객체는 "접근 자"원칙에 따라 작동합니다. 직렬화 된 데이터는 메소드를 통해 가져오고 비 직렬화 된 데이터는 메소드를 통해 설정됩니다. 디시리얼라이저가 예를 들어 리시버를 호출 할 때 일부 데이터를 업데이트 할 수 있습니다. ...

관련 문제