Suponha que você trabalha em uma empresa que armazena alguns dos dados de seus clientes em um arquivo denominado “dadosImportantes.txt”.
Em um determinado dia, devido a uma integração dos sistemas da empresa, a sua equipe foi designada a criar um programa capaz de atualizar todos os dados presentes nesse arquivo para um novo formato de armazenamento. Sendo assim, um de seus colegas de equipe decidiu iniciar o desenvolvimento desse programa.
Após alguns dias, esse mesmo colega te mostrou o seguinte código:
Após uma breve análise no código do programa, você identificou uma falha capaz de comprometer todos os dados presentes no arquivo.
Que falha é essa e qual alteração deve ser feita nesse código para que os dados sejam acessados e atualizados com segurança?
Passo 1
Bom, vamos começar com a primeira pergunta, qual é a falha que compromete os dados desse arquivo?
Quando nós analisamos a abertura do arquivo “dadosImportantes.txt”:
Percebemos que o mesmo foi aberto no modo de leitura e gravação que possui as seguintes regras:
- Se o arquivo não existe, o mesmo é criado e aberto (não é o nosso caso).
- Se o arquivo existe, o mesmo é aberto e todo o seu conteúdo é apagado (é o nosso caso).
Sendo assim, se esse programa for executado, nós perderemos todos os dados dos nossos clientes, pois o mesmo foi será aberto no modo w+.
Passo 2
Vamos agora para a segunda pergunta, como resolvemos esse problemão?
Simples, como o arquivo existe e não precisa ser criado, podemos utilizar o modo de abertura r+, que abrirá o arquivo tanto para leitura quanto para gravação.
A seguir temos o código alterado:
E pronto, com essa simples atualização nenhum dado será perdido! (e ninguém será demitido)
Resposta
Ei, a resposta está no passo a passo :)