c# - texto - leer y escribir archivo txt vb net
La forma más fácil de leer y escribir archivos. (9)
Hay muchas formas diferentes de leer y escribir archivos ( archivos de texto , no binarios) en C #.
Solo necesito algo que sea fácil y use la menor cantidad de código, porque voy a trabajar mucho con los archivos en mi proyecto. Solo necesito algo para la string
ya que todo lo que necesito es leer y escribir la string
s.
@AlexeiLevenkov me señaló otra "manera más fácil", a saber, el método de extensión . Toma solo un poco de codificación, luego proporciona la manera más fácil de leer y escribir, además de ofrecer la flexibilidad para crear variaciones de acuerdo con sus necesidades personales. Aquí hay un ejemplo completo:
Esto define el método de extensión en el tipo de string
. Tenga en cuenta que lo único que realmente importa es el argumento de la función con this
palabra clave adicional, que hace que se refiera al objeto al que se adjunta el método. El espacio de nombres y las declaraciones de clase son opcionales.
using System.IO;//File, Directory, Path
namespace Lib
{
/// <summary>
/// Handy string methods
/// </summary>
public static class Strings
{
/// <summary>
/// Extension method to write the string Str to a file
/// </summary>
/// <param name="Str"></param>
/// <param name="Filename"></param>
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
Esta es la forma de usar el string extension method
, tenga en cuenta que se refiere automáticamente a la 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
Nunca lo hubiera encontrado, pero funciona muy bien, así que quería compartirlo. ¡Que te diviertas!
Además de File.ReadAllText
, File.ReadAllLines
y File.WriteAllText
(y ayudantes similares de la clase File
) mostrados en otra respuesta , puede usar las clases StreamWriter
/ StreamReader
.
Escribiendo un archivo de texto:
using(StreamWriter writetext = new StreamWriter("write.txt"))
{
writetext.WriteLine("writing in text file");
}
Leyendo un archivo de texto:
using(StreamReader readtext = new StreamReader("readme.txt"))
{
string readMeText = readtext.ReadLine();
}
Notas:
- Puede usar
readtext.Close()
lugar deusing
, pero no cerrará el archivo / lector / escritor en caso de excepciones - Tenga en cuenta que la ruta relativa es relativa al directorio de trabajo actual. Es posible que desee utilizar / construir ruta absoluta.
- La falta de
using
/Close
es una razón muy común de "por qué los datos no se escriben en el archivo".
Es bueno cuando lee para usar el control OpenFileDialog para buscar cualquier archivo que desee leer. Encuentra el código a continuación:
No olvide agregar la siguiente declaración de using
para leer archivos: using System.IO;
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = File.ReadAllText(openFileDialog1.FileName);
}
}
Para escribir archivos puedes usar el método File.WriteAllText
.
Estás buscando las clases File
, StreamWriter
y StreamReader
.
La forma más fácil de leer un archivo y escribir en un archivo:
//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);
}
O, si realmente te interesan las líneas:
System.IO.File también contiene un método estático WriteAllLines , por lo que podría hacer:
IList<string> myLines = new List<string>()
{
"line1",
"line2",
"line3",
};
File.WriteAllLines("./foo", myLines);
Utilice File.ReadAllText y File.WriteAllText .
No podría ser más sencillo ...
Ejemplos de 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);
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"))
{
..........
}
Simple, fácil y también elimina / limpia el objeto una vez que haya terminado con él.