Uma tarefa fundamental e recorrente na criação de software é a leitura e escrita de dados. Para facilitar o desenvolvimento, normalmente as linguagens oferecem bibliotecas prontas para essa tarefa. Nesta série de artigos vamos exercitar a leitura escrita de textos utilizando a principal biblioteca do .NET para manipulação de entrada e saída de dados, System.IO.
Inicialmente vamos mostrar como podemos ler e escrever na entrada e saída padrão. Para isto abra o Visual C#, crie um projeto vazio (File > New Project… > Empty Project) com o nome Saudacao. No Solution Explorer clique com o botão direito do mouse no nome do projeto Saudacao e selecione Add > New Item…. Na janela que surgir selecione o item Code File, este arquivo vai se chamar “Saudacao.cs”. Neste arquivo, crie uma classe com de nome Saudacao e adicione nela o método Main.
Nossa tarefa é ler a partir da entrada padrão, o teclado, e escrever na saída padrão, o terminal. Para realizar a leitura e escrita vamos utilizar classes do namespace System.IO. A classe TextReader é responsável pela manipulação de streams de entrada de texto e a classe TextWriter pela saida. Destas classes quatro são os métodos principais:
- TextReader.Read – Lê um caractere;
- TextReader.ReadLine – Lê uma linha;
- TextWriter.Write – Escreve um caractere;
- TextWriter.WriteLine – Escreve uma linha.
Dentro do método Main inserimos um código que pergunta o nome do usuário e, em seguida, imprime uma saudação personalizada contendo o nome fornecido. Observe o código a seguir:
//Saudacao.cs
using System.IO;
class Saudacao
{
//ponto de entrada da nossa aplicacao
static void Main(string[] args)
{
//guardando uma referencia para o stream da entrada padrao, teclado
TextReader leitor = System.Console.In;
//guardando uma referencia para a saida padrao, o terminal
TextWriter escritor = System.Console.Out;
//o metodo Write escreve na saida padrao
escritor.Write("Qual é o seu nome? ");
//o metodo ReadLine le do teclado uma o texto ate encontrar uma quebra
//de linha (enter)
string name = leitor.ReadLine();
//o metodo WriteLine escreve na saida e adiciona uma quebra de linha
//(enter)
escritor.WriteLine("Bom dia, {0}!", name);
}
}
Executando o código acima obtivemos a seguinte saída:
