Como serializar um objeto em Java: 8 etapas (com imagens)

Índice:

Como serializar um objeto em Java: 8 etapas (com imagens)
Como serializar um objeto em Java: 8 etapas (com imagens)

Vídeo: Como serializar um objeto em Java: 8 etapas (com imagens)

Vídeo: Como serializar um objeto em Java: 8 etapas (com imagens)
Vídeo: Solidworks #27 - Desenhando uma Engrenagem 2024, Maio
Anonim

Ao serializar um objeto em Java, você converte os dados em fluxos de bytes que, posteriormente, são convertidos de volta na cópia dos dados originais. Se isso parece confuso, pense na serialização nos termos a seguir. Você está trabalhando em um documento e depois o salva em seu disco rígido. Você está, por assim dizer, serializando os dados para que possa recuperar essa cópia mais tarde. A serialização torna a transferência de dados em redes muito mais fácil e eficiente.

É importante que você entenda os fundamentos do Java antes de serializar um objeto. Se você usou linguagens de programação como Pascal e versões mais antigas de C, você saberá que, sem a serialização de objetos, um programador precisa criar um arquivo de texto de E / S separado para armazenar e carregar dados. A serialização de objetos em Java ignora a criação desse arquivo de texto para armazenar dados, economizando tempo e custos de programação. O artigo a seguir contém as etapas para serializar um objeto em Java. O código de amostra neste artigo é usado como cortesia de The Java Developers Almanac 1.4.

Passos

Serializar um objeto em Java Etapa 1
Serializar um objeto em Java Etapa 1

Etapa 1. Abra o objeto de codificação Java que requer serialização ou crie um do zero

Serializar um objeto em Java Etapa 2
Serializar um objeto em Java Etapa 2

Etapa 2. Selecione o objeto em Java que você deseja serializar

Neste exemplo, chamaremos esse objeto de “MyObject”.

Serializar um objeto em Java Etapa 3
Serializar um objeto em Java Etapa 3

Etapa 3. Habilite a serialização de objetos em Java criando a classe MyObject para implementar a interface java.io. Serialize

Basta adicionar a seguinte linha de código no início do código, substituindo a linha "public class MyObject" line.public class MyObject implementa java.io. Serializable

Serializar um objeto em Java Etapa 4
Serializar um objeto em Java Etapa 4

Etapa 4. Agora seu objeto é serializável, o que significa que ele pode ser escrito por um fluxo de saída, como este:

  • As linhas de código a seguir ilustram como gravar MyObject (ou qualquer objeto serializável) em um arquivo ou disco.

    Experimente{

    // Serializa o objeto de dados em um arquivo

    ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream ("MyObject.ser"));

    out.writeObject (objeto);

    out.close ();

    // Serializa o objeto de dados em uma matriz de bytes

    ByteArrayOutputStream bos = new ByteArrayOutputStream ();

    out = novo ObjectOutputStream (bos);

    out.writeObject (objeto);

    out.close ();

    // Pega os bytes do objeto serializado

    byte buf = bos.toByteArray ();

    } catch (IOException e) {

    }

Serializar um objeto em Java Etapa 5
Serializar um objeto em Java Etapa 5

Etapa 5. Pode ser lido assim:

tente {FileInputStream door = new FileInputStream ("name_of_file.sav"); Leitor ObjectInputStream = novo ObjectInputStream (porta); MeuObjeto x = novo MeuObjeto (); x = (MyObject) reader.nextObject ();} catch (IOException e) {e.printStackTrace ();}

Serializar um objeto em Java Etapa 6
Serializar um objeto em Java Etapa 6
Serializar um objeto em Java Etapa 7
Serializar um objeto em Java Etapa 7

Etapa 6. Execute o código do objeto serializado dentro do programa Java para certificar-se de que ele opere de forma eficaz (opcional)

Execute um arquivo. Jar Java Etapa 9
Execute um arquivo. Jar Java Etapa 9

Etapa 7. Salve e feche o objeto serializado em Java

Pontas

  • Os aprimoramentos de serialização no Java SE Development Kit 6 permitem que você use o ObjectStreamClass para pesquisar qualquer método para lidar com quaisquer objetos de classe não serializáveis.
  • Para melhorar os tempos de leitura e gravação em grandes árvores de objetos, use a palavra-chave “transiente” para variáveis de instância que não requerem serialização. Isso aumentará o desempenho, pois você não estará mais lendo e gravando dados desnecessários no processo de serialização.

Avisos

  • O Java lança uma nova versão do kit do desenvolvedor quase anualmente. As novas versões incluem atualizações e mudanças em como você pode serializar um objeto em Java. Portanto, é importante monitorar as mudanças na versão que você está usando.
  • Ao serializar objetos, você não pode criptografar fluxos de dados. Portanto, você precisará contar com outros aplicativos ou processos de transporte de rede secundária para proteger os dados, se necessário.
  • Atualmente, não há nenhuma opção que permita gravar objetos em um arquivo de acesso aleatório. Em vez disso, você pode utilizar os fluxos de saída de entrada do Byte Array como um espaço reservado para ler e gravar os objetos. No entanto, certifique-se de que todo o objeto esteja no fluxo Byte Array ou o processo falhará.

Recomendado: