Maneira mais fácil de ler e gravar arquivos

Há muitas maneiras diferentes de ler e gravar arquivos ( arquivos de texto , não binários) em C #.

Eu só preciso de algo que seja fácil e use a menor quantidade de código, porque vou trabalhar muito com arquivos no meu projeto. Eu só preciso de algo para string pois tudo que eu preciso é ler e escrever string .

Use File.ReadAllText e File.WriteAllText .

Não poderia ser mais simples …

Exemplos do MSDN:

 // Create a file to write to. string createText = "Hello and Welcome" + Environment.NewLine; File.WriteAllText(path, createText); // Open the file to read from. string readText = File.ReadAllText(path); 

Além de File.ReadAllText , File.ReadAllLines e File.WriteAllText (e ajudantes similares da class File ) mostrados em outra resposta, você pode usar as classs StreamWriter / StreamReader .

Escrevendo um arquivo de texto:

 using(StreamWriter writetext = new StreamWriter("write.txt")) { writetext.WriteLine("writing in text file"); } 

Lendo um arquivo de texto:

 using(StreamReader readtext = new StreamReader("readme.txt")) { string readMeText = readtext.ReadLine(); } 

Notas:

  • Você pode usar readtext.Close() vez de using , mas não fechará o arquivo / leitor / gravador em caso de exceções
  • Esteja ciente de que o caminho relativo é relativo ao diretório de trabalho atual. Você pode querer usar / construir caminho absoluto.
  • Faltando using / Close é uma razão muito comum de “por que os dados não são gravados no arquivo”.
 FileStream fs = new FileStream(txtSourcePath.Text,FileMode.Open, FileAccess.Read); using(StreamReader sr = new StreamReader(fs)) { using (StreamWriter sw = new StreamWriter(Destination)) { sw.writeline("Your text"); } } 
 using (var file = File.Create("pricequote.txt")) { ........... } using (var file = File.OpenRead("pricequote.txt")) { .......... } 

Simples, fácil e também descarta / limpa o object assim que estiver pronto.

A maneira mais fácil de ler um arquivo e gravar em um arquivo:

 //Read from a file string something = File.ReadAllText("C:\\Rfile.txt"); //Write to a file using (StreamWriter writer = new StreamWriter("Wfile.txt")) { writer.WriteLine(something); } 

@AlexeiLevenkov apontou-me em outro “caminho mais fácil”, ou seja, o método de extensão . É preciso apenas um pouco de codificação, em seguida, fornece a maneira mais fácil de ler / escrever, além de oferecer a flexibilidade para criar variações de acordo com suas necessidades pessoais. Aqui está um exemplo completo:

Isso define o método de extensão no tipo de string . Note que a única coisa que realmente importa é o argumento de function com palavra this chave extra, que faz referência ao object ao qual o método está anexado. O namespace e as declarações de class são opcionais.

 using System.IO;//File, Directory, Path namespace Lib { ///  /// Handy string methods ///  public static class Strings { ///  /// Extension method to write the string Str to a file ///  ///  ///  public static void WriteToFile(this string Str, string Filename) { File.WriteAllText(Filename, Str); return; } // of course you could add other useful string methods... }//end class }//end ns 

Isto é como usar o string extension method , note que ele se refere automaticamente à class Strings :

 using Lib;//(extension) method(s) for string namespace ConsoleApp_Sandbox { class Program { static void Main(string[] args) { "Hello World!".WriteToFile(@"c:\temp\helloworld.txt"); return; } }//end class }//end ns 

Eu nunca teria encontrado isso sozinho, mas funciona muito bem, então eu queria compartilhar isso. Diverta-se!

Ou, se você é realmente sobre linhas:

System.IO.File também contém um método estático WriteAllLines , portanto, você poderia fazer:

 IList myLines = new List() { "line1", "line2", "line3", }; File.WriteAllLines("./foo", myLines); 

É bom quando lendo para usar o controle OpenFileDialog para procurar qualquer arquivo que você deseja ler. Encontre o código abaixo:

Não esqueça de adicionar a seguinte declaração using para ler arquivos: using System.IO;

 private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = File.ReadAllText(openFileDialog1.FileName); } } 

Para gravar arquivos, você pode usar o método File.WriteAllText .

Você está procurando pelas classs File , StreamWriter e StreamReader .