qdatastream 예제

Posted on

예를 들어 char * 문자열은 “ 바이트를 포함한 문자열의 길이와 동일한 32비트 정수로 작성된 다음 “ 바이트를 포함한 문자열의 모든 문자가 뒤따릅니다. char * 문자열을 읽을 때 4 바이트를 읽고 32 비트 길이 값을 만든 다음 “ 터미네이터를 포함한 char * 문자열의 많은 문자를 읽습니다. 열려 있는 것이 성공하거나 이미 열려 있는 경우 지정된 QIODevice를 사용하여 QDataStream 어댑터가 만들어집니다. QDataStream 스트림 버전은 Qt_4_6로 설정되어 Qt 4 및 Qt 5를 지원할 수 있습니다. 이는 일부 데이터가 처리되는 방식에 영향을 미칩니다. 예를 들어 Qt_4_6 이전에는 부동 수레와 복식이 부동 수레와 복식으로 저장되었습니다. Qt_4_6 이상에서는 부동 및 복식이 기본적으로 double로 저장됩니다. 이 파일 헤더의 일부로 작성될 수 있지만 지정된 파일 형식에 대해 명시적으로 작성하는 것이 좋습니다. 버전 열거형은 다양한 Qt 버전에 대한 기호 상수를 제공합니다. 예를 들어 QByteArray에 있는 모든 데이터를 보유하려면 더 많은 메모리가 필요하지만 몇 가지 이점을 제공합니다. 예를 들어 Qt의 qCompress() 함수를 사용하여 데이터를 압축할 수 있습니다(zlib 사용): 이진 데이터를 처리하는 방법을 보여 드리기 위해 그리기 및 갤러리라는 두 가지 예제 클래스를 사용합니다. 드로잉 클래스에는 도면에 대한 몇 가지 기본 정보(아티스트 이름, 제목 및 생성된 연도)가 있으며 갤러리 클래스에는 도면 목록이 있습니다.

이 예제에서는 응용 프로그램의 버전 1.2 또는 이전 버전과 함께 저장된 모든 파일이 데이터 스트림 버전 4를 사용하고 응용 프로그램의 버전 1.3에 저장된 파일은 데이터 스트림 버전 5를 사용합니다. 데이터 스트림은 호스트 컴퓨터의 운영 체제, CPU 또는 바이트 순서와 100% 독립적인 인코딩된 정보의 이진 스트림입니다. 예를 들어, Windows에서 PC에 의해 작성 된 데이터 스트림 Solaris를 실행 하는 태양 SPARC에 의해 읽을 수 있습니다. 한 번에 파일을 읽거나 쓰려면 QDataStream을 완전히 사용하지 않고 대신 QFile의 writeBlock() 및 readAll() 함수를 사용할 수 있습니다. 예를 들어 직렬화 및 파일 출력을 처리하는 방법에는 여러 가지가 있습니다. 이 예제에서는 Qt에 대한 설명서에 제공된 방법과 일치하는 방법론을 제공하고 이를 확장하여 다양한 오류 처리 방법을 보여 줍니다. 예를 들어 컴퓨터에서 다른 컴퓨터로 데이터를 전송하려는 경우 매우 흥미롭습니다. 응용 프로그램에서 만든 문서의 파일 형식과 같은 새 이진 데이터 형식을 생성하는 경우 QDataStream을 사용하여 이식 가능한 형식으로 데이터를 작성할 수 있습니다.