static void CriarArquivoComWriter() { var caminhoNovoArquivo = "../contasExportadasComWriter.csv"; //-------------------------------------------------------------Utilizando Create, sera substituido(caso houver) o arquivo using (var fluxoDeArquivo = new FileStream(caminhoNovoArquivo, FileMode.Create)) using (var escritor = new StreamWriter(fluxoDeArquivo)) { escritor.Write("123,987312,524.00,Ciclano da Silva"); } Out.PrintLn("Operação para gerar arquivos finaizado..."); }
static void TestarLerArquivosEConverter() { var enderecoArquivo = "../contas.txt"; using (var fluxoDeArquivo = new FileStream(enderecoArquivo, FileMode.Open)) using (var leitor = new StreamReader(fluxoDeArquivo)) { while (!leitor.EndOfStream) { var linha = leitor.ReadLine(); var contaCorrente = ConverterStringparaContaCorrente(linha); Out.PrintLn($"{contaCorrente.Titular.Nome} -> Conta numero: {contaCorrente.Numero}, ag {contaCorrente.Agencia}, Saldo: {contaCorrente.Saldo}"); } } ContaCorrente ConverterStringparaContaCorrente(string linha) { // Dessa forma eu consigo ler arquivos separados por '<space>', mas caso eu tenha dados como nomes que sao separados por espaços, // irei pegar apenas o primeiro nome e descartar o resto... // para resolver isso, existe o padrao de arquivos CSV, que sao separados por ',' // SEPARADO POR '<space>' //string[] campos = linha.Split(' '); // O ARQUIVO .TXT FOI ALTERADO PARA O PADRAO CSV // SEPARADO POR ',' string[] campos = linha.Split(','); var agencia = campos[0]; var numero = campos[1]; var saldo = campos[2].Replace('.', ','); var nomeTitular = campos[3]; var agenciaComoInt = int.Parse(agencia); var numeroComoInt = int.Parse(numero); var saldoComoDouble = double.Parse(saldo); var titular = new Cliente { Nome = nomeTitular }; var resultado = new ContaCorrente(agenciaComoInt, numeroComoInt); resultado.Depositar(saldoComoDouble); resultado.Titular = titular; return(resultado); } }
static void TesteLerArquivoBinario() { var caminhoNovoArquivo = "../arquivoBinario.txt"; using (var fluxoDeArquivo = new FileStream(caminhoNovoArquivo, FileMode.Open)) using (var leitor = new BinaryReader(fluxoDeArquivo)) { var agencia = leitor.ReadInt32(); var numeroConta = leitor.ReadInt32(); var saldo = leitor.ReadDouble(); var titular = leitor.ReadString(); Out.PrintLn($"{agencia}/{numeroConta} {titular} {saldo}"); } }
static void CriarArquivoTratandoBytes() { var caminhoNovoArquivo = "../contasExportadas.csv"; using (var fluxoDeArquivo = new FileStream(caminhoNovoArquivo, FileMode.Create)) { var contaComString = "123,987312,524.00,Fulano da Silva"; var encoding = Encoding.UTF8; var bytes = encoding.GetBytes(contaComString); fluxoDeArquivo.Write(bytes, 0, bytes.Length); } Out.PrintLn("Operação para gerar arquivos finaizado..."); }
static void TesteFLUSHCriarArquivoComWriter() { var caminhoNovoArquivo = "../testeFlush.txt"; using (var fluxoDeArquivo = new FileStream(caminhoNovoArquivo, FileMode.Create)) using (var escritor = new StreamWriter(fluxoDeArquivo)) { for (int i = 0; i < 100; i++) { escritor.Write($"Linha {i}"); escritor.Flush(); // Despeja a informação do buffer e manda pro file stream (torna o processo um pouco mais lento) Out.PrintLn($"Linha {i} foi escrita no arquivo. Tecle enter para continuar..."); Console.ReadLine(); } } Out.PrintLn("Operação para gerar arquivos finaizado..."); }
static void UsandoStreamEntrada() { using (var fluxoDeEntrada = Console.OpenStandardInput()) using (var fileStream = new FileStream("../entradaConsole.txt", FileMode.Create)) { var buffer = new byte[1024]; while (true) { var bytesLidos = fluxoDeEntrada.Read(buffer, 0, 1024); fileStream.Write(buffer, 0, bytesLidos); fileStream.Flush(); Out.PrintLn($"Bytes lidos da Console {bytesLidos}"); } } }
static void TestarIOrderedEnumerable() { var lista = new List <ContaCorrente>() { new ContaCorrente(123, 981324), new ContaCorrente(123, 871324), new ContaCorrente(123, 1234), new ContaCorrente(123, 654650), new ContaCorrente(123, 8045), new ContaCorrente(123, 8), new ContaCorrente(123, 1234), new ContaCorrente(123, 452) }; var listaSemNulos = new List <ContaCorrente>(); foreach (var item in lista) { listaSemNulos.Add(item); } var contasOrdenadasSemNulo = listaSemNulos.OrderBy(conta => conta.Numero); var contasNaoNulas = lista .Where(conta => conta != null) .OrderBy(conta => conta.Numero); IOrderedEnumerable <ContaCorrente> contasOrdenadas = lista.OrderBy(conta => { if (conta == null) { return(int.MaxValue); } return(conta.Numero); } ); foreach (var item in contasOrdenadas) { Out.PrintLn(item.Numero); } }
static void TestarInterfaceIComparer() { var lista = new List <ContaCorrente>() { new ContaCorrente(123, 123), new ContaCorrente(123, 444), new ContaCorrente(123, 555), new ContaCorrente(123, 666), new ContaCorrente(123, 987324), new ContaCorrente(123, 98763), new ContaCorrente(123, 1234), new ContaCorrente(123, 452) }; lista.Sort(); foreach (var item in lista) { Out.PrintLn(item.Numero); } }
static void TestarExtensao() { Out.PrintLn("Testando extensao criada estilo JAVA como System.out.PrintLn() :)"); }