Đây là những phương pháp tốt nhất và được sử dụng phổ biến nhất để ghi và đọc từ các tệp:
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);
Cách cũ, mà tôi đã được dạy ở trường đại học là sử dụng trình đọc luồng / trình ghi luồng, nhưng Tệp phương thức I / O của ít khó hiểu hơn và yêu cầu ít dòng mã hơn. Bạn có thể nhập vào "Tệp." trong IDE của bạn (đảm bảo bạn bao gồm câu lệnh nhập System.IO) và xem tất cả các phương thức có sẵn. Dưới đây là các phương thức ví dụ để đọc / ghi chuỗi đến / từ tệp văn bản (.txt.) Bằng Ứng dụng Windows Forms.
Nối văn bản vào một tệp hiện có:
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
Nhận tên tệp từ người dùng thông qua hộp thoại tệp explorer / mở tệp (bạn sẽ cần điều này để chọn các tệp hiện có).
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
Nhận văn bản từ một tệp hiện có:
private void btnGetTextFromExistingFile_Click(object sender, EventArgs e)
{
string sFileNameAndPath = getFileNameFromUser();
txtMainUserInput.Text = File.ReadAllText(sFileNameAndPath); //display the text
}
string.Write(filename)
. Tại sao giải pháp microsofts đơn giản / tốt hơn của tôi?