Pergunta

Estou criando um programa de criptografia e preciso salvar a senha criptografada em um arquivo usando o leitor e gravador binário.Quando tento ler os dados, tudo que recebo é um número.O que eu fiz errado?

 public static string readData(string fileName)
    {
        string data;

        FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);

        using (BinaryReader reader = new BinaryReader(fStream))
        {
            data = reader.Read().ToString();
        }

        return data;   
    }

E o escritor

 public static void writeData(string fileName, string data)
 {

  using (BinaryWriter writer = new BinaryWriter(File.Open (fileName, FileMode.Create)))
        {
            writer.Write(data);
        }
    }
Foi útil?

Solução

Usar reader.ReadString() em vez de.

data = reader.ReadString();

O Ler O método lê o próximo caractere e retorna o valor inteiro correspondente dele, como você pode ver no documentação.basicamente, você escreveu um string ao seu arquivo em formato binário, então você precisa lê-lo novamente.

Outras dicas

Isso é porque você está ligando para o Read método que retorna um único número inteiro.¨

Você quer fazer ReadString.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top