As classes QDataStream e QTextStream permitem manipular sequêcias de bits através de dispositivos representados por um objecto da classe QIODevice.
Quanto ao tipo de dados que permitem manipular temos:
- QDataStream: Para manipular dados no formato binário;
- QTextStream: para manipular dados no formato de texto.
Estas duas classes apresentam algumas vantagens relativamente às suportadas pela linguagem C++, entre as quais destaco a facilidade de utilização, bem como a preocupação pela universalidade da utilização do código, independentemente da plataforma utilizada, país ou idioma, libertando o programador destas preocupações.
Uma vez que as entradas e saídas de dados estão associadas a determinados dispositivos, o Qt também disponibiliza um conjunto de classes para o tratamento de entradas e saídas que as aplicações podem utilizar.
A classe QIODevice é uma classe abstracta onde se centra todo este processo de leitura e escrita em dispositivos capazes de lerem e escreverem blocos de bytes.
As principais subclasses são:
Nota: ATENÇÃO ÀS VERSÕES
Neste artigo pretendo indexar um conjunto de exemplos que vou recolher e construir sobre cada uma destas classes.
Exemplo 01: Escrever um texto no ecrã (stdout).
Exemplo 02: Escreve um texto num ficheiro.
Exemplo 03: Substitui todas as ocorrências de uma palavra no ficheiro texto.txt por outra palavra dada. O resultado é guardano um novo ficheiro.
Exemplo 04: Implementação gráfica do Exemplo 03.
Exemplo 05: Upgrade do Exemplo 04 para utilização da classe QFileDialog de forma a permitir seleccionar a directoria de trabalho.
Exemplo 06: Permite abrir ficheiro de texto ( txt ou ficheiro de programação *.h, *.cpp …), procurar uma palavra e substituíla por outra, podendo no final o resultado ser guardado no disco.
Exemplo 07: Um exemplo sobre QDataStream. Em vez de uma coisa chata fiz uma aplicação que permite controlar um semáforo que está a ser executado nos vários postos da rede. O protocolo UDP é utilizado para “fugir” às aplicações do tipo cliente/servidor.