回答:
File.ReadAllTextおよびFile.WriteAllTextを使用します。
それはもっと簡単なことではありません...
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);
"foo".Write(fileName)
は、拡張を簡単に作成public static Write(this string value, string fileName) { File.WriteAllText(fileName, value);}
してプロジェクトで使用できます。
別の回答に示されている、、および(およびクラスの類似のヘルパー)に加えてFile.ReadAllText
、/ クラスを使用できます。File.ReadAllLines
File.WriteAllText
File
StreamWriter
StreamReader
テキストファイルの書き込み:
using(StreamWriter writetext = new StreamWriter("write.txt"))
{
writetext.WriteLine("writing in text file");
}
テキストファイルの読み取り:
using(StreamReader readtext = new StreamReader("readme.txt"))
{
string readText = readtext.ReadLine();
}
ノート:
readtext.Dispose()
代わりに使用できますがusing
、例外が発生した場合、ファイル/リーダー/ライターは閉じません。using
/ Close
「なぜデータがファイルに書き込まれていない」のは非常に一般的な理由です。using
-他の回答のように、あなたのストリームstackoverflow.com/a/7571213/477420
using System.IO;
を使用する必要があります。
new StreamWriter("write.txt", true)
ファイルが存在しない場合はファイルが作成され、それ以外の場合は既存のファイルに追加されます。
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");
}
}
fs
最後に解散してみませんか?
ファイルから読み取り、ファイルに書き込む最も簡単な方法:
//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);
}
File.WriteAllText
部分を書くため?
@AlexeiLevenkovは、私を別の「最も簡単な方法」、つまり拡張メソッドに向けました。それはほんの少しのコーディングを必要とし、それから読み書きするための絶対的に最も簡単な方法を提供し、それに加えて個人のニーズに応じてバリエーションを作成する柔軟性を提供します。以下は完全な例です。
これは、string
型の拡張メソッドを定義します。本当に重要な唯一のことはthis
、メソッドがアタッチされているオブジェクトを参照させる、追加のキーワードを含む関数の引数であることに注意してください。クラス名は関係ありません。クラスとメソッドを宣言する必要がありますstatic
。
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
これはの使用方法でありstring extension method
、自動的にを参照することに注意してください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
自分でこれを見つけたことはなかったでしょうが、うまく機能しているので、共有したいと思いました。楽しんで!
これらは、ファイルへの読み書きに最もよく使用される方法です。
using System.IO;
File.AppendAllText(sFilePathAndName, sTextToWrite);//add text to existing file
File.WriteAllText(sFilePathAndName, sTextToWrite);//will overwrite the text in the existing file. If the file doesn't exist, it will create it.
File.ReadAllText(sFilePathAndName);
私が大学で教えられた古い方法は、ストリームリーダー/ストリームライターを使用することでしたが、ファイル I / Oメソッドはそれほど扱いやすくなく、必要なコード行が少なくなっています。「ファイル」と入力できます。IDEで(System.IOインポートステートメントが含まれていることを確認してください)、使用可能なすべてのメソッドを確認します。以下は、Windowsフォームアプリを使用してテキストファイル(.txt。)に文字列を読み書きする方法の例です。
既存のファイルにテキストを追加します。
private void AppendTextToExistingFile_Click(object sender, EventArgs e)
{
string sTextToAppend = txtMainUserInput.Text;
//first, check to make sure that the user entered something in the text box.
if (sTextToAppend == "" || sTextToAppend == null)
{MessageBox.Show("You did not enter any text. Please try again");}
else
{
string sFilePathAndName = getFileNameFromUser();// opens the file dailog; user selects a file (.txt filter) and the method returns a path\filename.txt as string.
if (sFilePathAndName == "" || sFilePathAndName == null)
{
//MessageBox.Show("You cancalled"); //DO NOTHING
}
else
{
sTextToAppend = ("\r\n" + sTextToAppend);//create a new line for the new text
File.AppendAllText(sFilePathAndName, sTextToAppend);
string sFileNameOnly = sFilePathAndName.Substring(sFilePathAndName.LastIndexOf('\\') + 1);
MessageBox.Show("Your new text has been appended to " + sFileNameOnly);
}//end nested if/else
}//end if/else
}//end method AppendTextToExistingFile_Click
ファイルエクスプローラー/ファイルを開くダイアログを介してユーザーからファイル名を取得します(既存のファイルを選択するには、これが必要です)。
private string getFileNameFromUser()//returns file path\name
{
string sFileNameAndPath = "";
OpenFileDialog fd = new OpenFileDialog();
fd.Title = "Select file";
fd.Filter = "TXT files|*.txt";
fd.InitialDirectory = Environment.CurrentDirectory;
if (fd.ShowDialog() == DialogResult.OK)
{
sFileNameAndPath = (fd.FileName.ToString());
}
return sFileNameAndPath;
}//end method getFileNameFromUser
既存のファイルからテキストを取得します。
private void btnGetTextFromExistingFile_Click(object sender, EventArgs e)
{
string sFileNameAndPath = getFileNameFromUser();
txtMainUserInput.Text = File.ReadAllText(sFileNameAndPath); //display the text
}
読み取り時には、OpenFileDialogコントロールを使用して、読み取りたいファイルを参照することをお勧めします。以下のコードを見つけてください:
using
ファイルを読み取るために次のステートメントを追加することを忘れないでください:using System.IO;
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = File.ReadAllText(openFileDialog1.FileName);
}
}
ファイルを書き込むには、メソッドを使用できますFile.WriteAllText
。
class Program
{
public static void Main()
{
//To write in a txt file
File.WriteAllText("C:\\Users\\HP\\Desktop\\c#file.txt", "Hello and Welcome");
//To Read from a txt file & print on console
string copyTxt = File.ReadAllText("C:\\Users\\HP\\Desktop\\c#file.txt");
Console.Out.WriteLine("{0}",copyTxt);
}
}
private void Form1_Load(object sender, EventArgs e)
{
//Write a file
string text = "The text inside the file.";
System.IO.File.WriteAllText("file_name.txt", text);
//Read a file
string read = System.IO.File.ReadAllText("file_name.txt");
MessageBox.Show(read); //Display text in the file
}
string.Write(filename)
。マイクロソフトのソリューションが私のソリューションよりもシンプル/優れているのはなぜですか?