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);
}
}
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