Um Stream pode ser definido como um fluxo de dados em um sistema computacional. Quando um arquivo é aberto para edição, todo ele ou parte dele fica na memória, permitindo assim alterações, por isto somente quando ele é fechado, tem-se a garantia de que nenhum dado se perderá ou será danificado.
Quando um arquivo é carregado na memória para ser editado, esta carga ocorre num fluxo “stream“, ou seja, byte a byte até o carregamento total do arquivo.
Stream
- Lê um byte após o outro, um byte é apenas um número.
- Os dados sobre o seu disco rígido é armazenado em bytes.
- Bytes podem ser interpretados como caracteres, números e etc.
Byte
Um byte (Binary Term), baite ou octeto, é um dos tipos de dados integrais em computação. É usado com frequência para especificar o tamanho ou quantidade da memória ou da capacidade de armazenamento de um certo dispositivo, independentemente do tipo de dados.
A codificação padronizada de byte foi definida como sendo de 8 bits. O byte de 8 bits é mais comumente chamado de octeto no contexto de redes de computadores e telecomunicações.
Instruções
FileReader (java) é para a leitura de streams dos caracteres.
ifstream (C++) define um fluxo a ser utilizado para ler dados de caracteres de byte único em série a partir de um arquivo.
StreamReader (C#) é usado para ler linhas de informações de um arquivo de texto padrão.
Exemplos:
Neste exemplo vamos criar um stream para ler o arquivo chamado Leiame.txt.
Texto – Leiame.txt
Desenvolvimento Aberto. Input/Output (Entrada/saída) é um termo utilizado quase que exclusivamente no ramo da computação (ou informática), indicando entrada (inserção) de dados por meio de algum código ou programa, para algum outro programa ou hardware, bem como a sua saída (obtenção de dados) ou retorno de dados, como resultado de alguma operação de algum programa, consequentemente resultado de alguma entrada.
Java
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Bytes { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("./src/Leiame.txt"); BufferedReader br = new BufferedReader(fr); String line = null; try { while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } br.close(); } }
C++
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string linha; ifstream arquivo("C:/Desenvolvimento Aberto/Leiame.txt"); if (arquivo.is_open()) { while (getline(arquivo, linha)) { cout << linha << endl; } arquivo.close(); } else cout << "Erro ao abrir o arquivo."; system("pause"); return 0; }
C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace DesenvolvimentoAberto { class Program { static void Main(string[] args) { try { StreamReader sr = new StreamReader("C:/Desenvolvimento Aberto/Leiame.txt"); String line = sr.ReadToEnd(); Console.WriteLine(line); sr.Close(); } catch (Exception e) { Console.WriteLine( e.StackTrace); } Console.ReadKey(); } } }