Leitura de Arquivos Usando StreamReader
Você pode abrir e ler arquivos utilizando a linguagem de programação C#.
Para ler um arquivo, criamos um novo objeto StreamReader
. O objeto StreamReader
recebe o caminho do arquivo.
O termo "objeto" será explicado de forma mais clara nas seções seguintes, porém, para fins de compreensão - um objeto é simplesmente uma instância de um tipo de dado, e StreamReader
é um tipo de dado assim como int
ou float
. Portanto, os valores 1
, 2.5f
e "Hello World"
podem ser tecnicamente referenciados como "objetos" dos tipos de dados int, float e string, respectivamente.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Aqui, fileVarName
representa o nome da variável na qual você irá armazenar o objeto StreamReader, e fullPath
deve ser o caminho completo do arquivo em formato de string.
Por exemplo, é possível abrir um arquivo "text.txt" na Área de Trabalho com o caminho C:/Users/Admin/Desktop/text.txt
:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Também é possível utilizar declaração implícita para tornar a sintaxe um pouco mais curta: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Considere que o arquivo text.txt
possui o seguinte conteúdo:
text.txt
12345This is some example text
Um objeto StreamReader
possui um método ReadLine
que lê uma linha do arquivo e a retorna:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Saída:
This
O método ReadLine
muda automaticamente o cursor para a próxima linha, então, quando chamado novamente, ele lê a próxima linha se houver; caso contrário, simplesmente retorna null
(nulo):
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Saída:
This
is
some
example
text
Para ler todas as linhas de um arquivo, pode-se utilizar o laço while
com uma condição que verifica se a próxima linha é null
ou não. A seguir, apresenta-se uma forma simples de realizar essa operação:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Saída:
This
is
some
example
text
É possível tornar o código acima um pouco mais organizado utilizando um truque; para isso, observe as declarações de atribuição. Uma declaração de atribuição também possui um valor de retorno, que é o valor atribuído. Isso pode ser compreendido com um exemplo:
index.cs
12int a; Console.WriteLine(a = 7);
Saída:
7
O resultado é 7
porque a instrução a = 7
retorna 7
, que é o valor atribuído a a
.
Você pode usar essa informação para realizar algumas operações criativas, como atribuir o mesmo valor a várias variáveis em uma única instrução:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Saída:
9
9
9
Com essas informações, é possível modificar o código de leitura de arquivos para torná-lo mais conciso, removendo trechos desnecessários:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Dentro da condição, foi utilizada primeiro uma instrução de atribuição line = textFile.ReadLine()
, que atualiza automaticamente a variável line
e, em seguida, verifica se ela é nula a partir do valor retornado pela instrução.
Após a leitura do arquivo, é necessário fechá-lo utilizando o método Close
, caso contrário, isso pode causar vazamentos de memória ou o arquivo pode ser bloqueado e se tornar inacessível por outros locais enquanto o programa estiver em execução.
O código final ficará assim:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.04
Leitura de Arquivos Usando StreamReader
Deslize para mostrar o menu
Você pode abrir e ler arquivos utilizando a linguagem de programação C#.
Para ler um arquivo, criamos um novo objeto StreamReader
. O objeto StreamReader
recebe o caminho do arquivo.
O termo "objeto" será explicado de forma mais clara nas seções seguintes, porém, para fins de compreensão - um objeto é simplesmente uma instância de um tipo de dado, e StreamReader
é um tipo de dado assim como int
ou float
. Portanto, os valores 1
, 2.5f
e "Hello World"
podem ser tecnicamente referenciados como "objetos" dos tipos de dados int, float e string, respectivamente.
index.cs
1StreamReader fileVarName = new StreamReader(fullPath);
Aqui, fileVarName
representa o nome da variável na qual você irá armazenar o objeto StreamReader, e fullPath
deve ser o caminho completo do arquivo em formato de string.
Por exemplo, é possível abrir um arquivo "text.txt" na Área de Trabalho com o caminho C:/Users/Admin/Desktop/text.txt
:
index.cs
1StreamReader textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Também é possível utilizar declaração implícita para tornar a sintaxe um pouco mais curta: var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt");
Considere que o arquivo text.txt
possui o seguinte conteúdo:
text.txt
12345This is some example text
Um objeto StreamReader
possui um método ReadLine
que lê uma linha do arquivo e a retorna:
index.cs
1234var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); Console.WriteLine(line);
Saída:
This
O método ReadLine
muda automaticamente o cursor para a próxima linha, então, quando chamado novamente, ele lê a próxima linha se houver; caso contrário, simplesmente retorna null
(nulo):
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); Console.WriteLine(textFile.ReadLine()); // This Console.WriteLine(textFile.ReadLine()); // is Console.WriteLine(textFile.ReadLine()); // some Console.WriteLine(textFile.ReadLine()); // example Console.WriteLine(textFile.ReadLine()); // text Console.WriteLine(textFile.ReadLine()); // NULL
Saída:
This
is
some
example
text
Para ler todas as linhas de um arquivo, pode-se utilizar o laço while
com uma condição que verifica se a próxima linha é null
ou não. A seguir, apresenta-se uma forma simples de realizar essa operação:
index.cs
12345678var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line = textFile.ReadLine(); while(line != null) { Console.WriteLine(line); line = textFile.ReadLine(); }
Saída:
This
is
some
example
text
É possível tornar o código acima um pouco mais organizado utilizando um truque; para isso, observe as declarações de atribuição. Uma declaração de atribuição também possui um valor de retorno, que é o valor atribuído. Isso pode ser compreendido com um exemplo:
index.cs
12int a; Console.WriteLine(a = 7);
Saída:
7
O resultado é 7
porque a instrução a = 7
retorna 7
, que é o valor atribuído a a
.
Você pode usar essa informação para realizar algumas operações criativas, como atribuir o mesmo valor a várias variáveis em uma única instrução:
index.cs
123456789int a = 1; int b = 1; int c = 1; a = b = c = 9; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c);
Saída:
9
9
9
Com essas informações, é possível modificar o código de leitura de arquivos para torná-lo mais conciso, removendo trechos desnecessários:
index.cs
1234567var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while((line = textFile.ReadLine()) != null) { Console.WriteLine(line); }
Dentro da condição, foi utilizada primeiro uma instrução de atribuição line = textFile.ReadLine()
, que atualiza automaticamente a variável line
e, em seguida, verifica se ela é nula a partir do valor retornado pela instrução.
Após a leitura do arquivo, é necessário fechá-lo utilizando o método Close
, caso contrário, isso pode causar vazamentos de memória ou o arquivo pode ser bloqueado e se tornar inacessível por outros locais enquanto o programa estiver em execução.
O código final ficará assim:
index.cs
123456789var textFile = new StreamReader("C:/Users/Admin/Desktop/text.txt"); string line; while ((line = textFile.ReadLine()) != null) { Console.WriteLine(line); } textFile.Close();
Obrigado pelo seu feedback!