바이너리 포맷터를 사용하여 여러 객체를 파일로 직렬화하려고합니다.바이너리 포맷터를 사용하여 바이너리 파일 중간 읽기
파일이 너무 크므로 파일 중간에서 특정 개체가 필요한 경우 전체 파일을 직렬화 해제하지 않는 것이 좋습니다.
이 방법이 있습니까? 다른 시리얼 라이저를 사용 하시겠습니까?
또한 같은 위치에서 개체를 변경할 수 있습니까?
바이너리 포맷터를 사용하여 여러 객체를 파일로 직렬화하려고합니다.바이너리 포맷터를 사용하여 바이너리 파일 중간 읽기
파일이 너무 크므로 파일 중간에서 특정 개체가 필요한 경우 전체 파일을 직렬화 해제하지 않는 것이 좋습니다.
이 방법이 있습니까? 다른 시리얼 라이저를 사용 하시겠습니까?
또한 같은 위치에서 개체를 변경할 수 있습니까?
TL; DR :
파일을 스트림으로 다시 열면 스트림의 Seek 메서드를 사용하여 원하는 위치 (어딘가에 기억해야하는)로 이동 한 다음 원하는 바이트 수를 읽을 수 있습니다. 또한 마커 비트를 사용하여 파일의 끝을 기억하거나 마크해야합니다. 파일을 수정하는 것도 아주 재미있을 것입니다.
하지 마세요! 당신은 나쁜 tar 동등한를 기록 할 것, 그리고 다른 많은 사람들이 이미 수행 한 더 나은 :
이 또한주의 .NET의 진 그 직렬화가 이후 .NET 버전에서 읽을 수있는 것은 아닙니다. 데이터 보관이 아닌 일시적인 작업을 의미합니다. 이것은 당신에게 중요 할 수 있으며 고려해야 할 또 다른 사항입니다.
파일을 어떻게 처리하는지 모르겠습니다. 그럴 필요가 없거나 필요가 없을 수도 있습니다. 디스크에 개별 파일로 저장하는 것이 좋습니다. 단일 파일로서의 압축/저장이 사실상 그렇다면, 외부 종속성이 없으므로 .NET의 ZipFile 클래스로 시작하는 것이 좋습니다.
파일을 BinaryFormatter로 만든 경우 중간에있는 개체를 읽는 방법이 없으며 해당 개체를 다시 쓰지 않아도됩니다. – rene
다른 formmater를 알고 계십니까? 아니면 수동으로 구현해야합니까? –
Sqlite와 같은 간단한 데이터베이스를 사용해보십시오. –