Moyen le plus simple de lire et d'écrire dans des fichiers

Il y a beaucoup de façons différentes de lire et d'écrire des fichiers ( fichiers texte , pas binaires) en C#.

J'ai juste besoin de quelque chose de facile et qui utilise le moins de code, car je vais beaucoup travailler avec des fichiers dans mon projet. J'ai seulement besoin de quelque chose pour string puisque tout ce dont j'ai besoin est de lire et d'écrire strings.

250
demandé sur Peter Mortensen 2011-09-27 17:25:48

9 réponses

Utilisez Le Fichier .ReadAllText et Fichier.WriteAllText .

Il ne pouvait pas être plus simple...

MSDN exemples:

// 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);
408
répondu vc 74 2017-06-24 20:37:00

En plus de File.ReadAllText, File.ReadAllLines, et File.WriteAllText (et des aides à partir de File classe) indiqué dans une autre réponse, vous pouvez utiliser StreamWriter/StreamReader des classes.

Écriture d'un fichier texte:

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

Lecture d'un fichier texte:

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

Notes:

  • Vous pouvez utiliser readtext.Close() au lieu de using, mais il ne sera pas fermer le fichier/lecteur/enregistreur en cas d'exceptions
  • sachez que le chemin relatif est relatif au travail en cours répertoire. Vous pouvez utiliser / construire un chemin absolu.
  • manquant using/Close est une raison très courante de "pourquoi les données ne sont pas écrites dans un fichier".
125
répondu Bali C 2017-06-24 20:39:23
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");
    }
}
13
répondu Swapnil 2015-02-12 09:01:43
using (var file = File.Create("pricequote.txt"))
{
    ...........                        
}

using (var file = File.OpenRead("pricequote.txt"))
{
    ..........
}

Simple, facile et dispose/nettoie également l'objet une fois que vous en avez terminé avec lui.

10
répondu Ankit Dass 2015-01-08 11:33:30

Le moyen le plus simple de lire à partir d'un fichier et d'écrire dans un fichier:

//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);
}
9
répondu yazarloo 2017-11-07 12:14:39

@ AlexeiLevenkov m'a indiqué un autre "moyen le plus simple" à savoir la méthode d'extension . Il faut juste un peu de codage, puis fournit la meilleure façon absolue de lire / écrire, plus il offre la flexibilité de créer des variations en fonction de vos besoins personnels. Voici un exemple complet:

Définit la méthode d'extension sur le type string. Notez que la seule chose qui compte vraiment est l'argument de fonction supplémentaire mot-clé this, qui fait référence à l'objet la méthode est attaché. Les déclarations d'espace de noms et de classe sont facultatives.

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

Voici comment utiliser le string extension method, notez qu'il se réfère automagiquement au 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

Je ne l'aurais jamais trouvé moi-même, mais cela fonctionne très bien, alors je voulais partager cela. Amuse-toi bien!

8
répondu Roland 2016-06-07 09:05:19

Ou, si vous êtes vraiment sur les lignes:

System. IO. File contient également une méthode statique WriteAllLines , donc vous pouvez faire:

IList<string> myLines = new List<string>()
{
    "line1",
    "line2",
    "line3",
};

File.WriteAllLines("./foo", myLines);
3
répondu anhoppe 2016-01-08 13:17:46

Il est bon lors de la lecture d'utiliser le contrôle OpenFileDialog pour parcourir n'importe quel fichier que vous voulez lire. Trouvez le code ci-dessous:

N'oubliez pas d'ajouter l'instruction using suivante pour lire les fichiers: using System.IO;

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

Pour écrire des fichiers vous pouvez utiliser la méthode File.WriteAllText.

3
répondu SamekaTV 2016-09-10 19:36:55

Vous cherchez le File, StreamWriter, et StreamReader classes.

0
répondu SLaks 2011-09-27 13:26:33