Nasıl yapılır: Dosyaya metin yazma
Bu makalede, .NET uygulaması için dosyaya metin yazmanın farklı yolları gösterilmektedir.
Aşağıdaki sınıflar ve yöntemler genellikle bir dosyaya metin yazmak için kullanılır:
StreamWriter, bir dosyaya zaman uyumlu (Write ve ) veya zaman uyumsuz olarak (WriteAsync ve WriteLineWriteLineAsync) yazma yöntemlerini içerir.
Fileve WriteAllTextgibi WriteAllLines bir dosyaya metin yazmak veya , ve AppendTextgibi bir dosyaya AppendAllLinesAppendAllTextmetin eklemek için statik yöntemler sağlar.
Path , dosya veya dizin yolu bilgilerine sahip dizeler içindir. yöntemini ve .NET Core 2.1 ve sonraki Join sürümlerinde ve TryJoin yöntemlerini içerirCombine. Bu yöntemler, bir dosya veya dizin yolu oluşturmak için dizeleri birleştirmenize olanak sağlar.
Not
Aşağıdaki örneklerde yalnızca gereken en düşük kod miktarı gösterilmektedir. Gerçek dünya uygulaması genellikle daha güçlü hata denetimi ve özel durum işleme sağlar.
Örnek: StreamWriter ile zaman uyumlu bir şekilde metin yazma
Aşağıdaki örnekte, yeni bir dosyaya her seferinde bir satır zaman uyumlu bir şekilde metin yazmak için sınıfının nasıl kullanılacağı StreamWriter gösterilmektedir. StreamWriter Nesnesi bir using
deyimde bildirildiğinden ve örneği oluşturulduğundan Dispose yöntemi çağrılır ve bu yöntem akışı otomatik olarak boşaltır ve kapatır.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Create a string array with the lines of text
string[] lines = { "First line", "Second line", "Third line" };
// Set a variable to the Documents path.
string docPath =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// Write the string array to a new file named "WriteLines.txt".
using (StreamWriter outputFile = new StreamWriter(Path.Combine(docPath, "WriteLines.txt")))
{
foreach (string line in lines)
outputFile.WriteLine(line);
}
}
}
// The example creates a file named "WriteLines.txt" with the following contents:
// First line
// Second line
// Third line
Imports System.IO
Class WriteText
Public Shared Sub Main()
' Create a string array with the lines of text
Dim lines() As String = {"First line", "Second line", "Third line"}
' Set a variable to the Documents path.
Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Write the string array to a new file named "WriteLines.txt".
Using outputFile As New StreamWriter(Path.Combine(docPath, Convert.ToString("WriteLines.txt")))
For Each line As String In lines
outputFile.WriteLine(line)
Next
End Using
End Sub
End Class
' The example creates a file named "WriteLines.txt" with the following contents:
' First line
' Second line
' Third line
Örnek: StreamWriter ile zaman uyumlu olarak metin ekleme
Aşağıdaki örnekte, ilk örnekte oluşturulan metin dosyasına zaman uyumlu bir şekilde metin eklemek için sınıfının nasıl kullanılacağı StreamWriter gösterilmektedir:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// Append text to an existing file named "WriteLines.txt".
using (StreamWriter outputFile = new StreamWriter(Path.Combine(docPath, "WriteLines.txt"), true))
{
outputFile.WriteLine("Fourth Line");
}
}
}
// The example adds the following line to the contents of "WriteLines.txt":
// Fourth Line
Imports System.IO
Class AppendText
Public Shared Sub Main()
' Set a variable to the Documents path.
Dim docPath As String =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Append text to an existing file named "WriteLines.txt".
Using outputFile As New StreamWriter(Path.Combine(docPath, Convert.ToString("WriteLines.txt")), True)
outputFile.WriteLine("Fourth Line")
End Using
End Sub
End Class
' The example adds the following line to the contents of "WriteLines.txt":
' Fourth Line
Örnek: StreamWriter ile zaman uyumsuz olarak metin yazma
Aşağıdaki örnekte, sınıfını kullanarak yeni bir dosyaya zaman uyumsuz olarak metin yazma işlemi gösterilmektedir StreamWriter . yöntemini çağırmak WriteAsync için yöntem çağrısının bir async
yöntem içinde olması gerekir.
using System;
using System.IO;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// Write the specified text asynchronously to a new file named "WriteTextAsync.txt".
using (StreamWriter outputFile = new StreamWriter(Path.Combine(docPath, "WriteTextAsync.txt")))
{
await outputFile.WriteAsync("This is a sentence.");
}
}
}
// The example creates a file named "WriteTextAsync.txt" with the following contents:
// This is a sentence.
Imports System.IO
Public Module Example
Public Sub Main()
WriteTextAsync()
End Sub
Async Sub WriteTextAsync()
' Set a variable to the Documents path.
Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Write the text asynchronously to a new file named "WriteTextAsync.txt".
Using outputFile As New StreamWriter(Path.Combine(docPath, Convert.ToString("WriteTextAsync.txt")))
Await outputFile.WriteAsync("This is a sentence.")
End Using
End Sub
End Module
' The example creates a file named "WriteTextAsync.txt" with the following contents:
' This is a sentence.
Örnek: Dosya sınıfıyla metin yazma ve ekleme
Aşağıdaki örnekte, sınıfını kullanarak yeni bir dosyaya metin yazma ve aynı dosyaya yeni metin satırları ekleme işlemi gösterilmektedir File . WriteAllText ve AppendAllLines yöntemleri dosyayı otomatik olarak açar ve kapatır. Yöntemine WriteAllText sağladığınız yol zaten varsa, dosyanın üzerine yazılır.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Create a string with a line of text.
string text = "First line" + Environment.NewLine;
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// Write the text to a new file named "WriteFile.txt".
File.WriteAllText(Path.Combine(docPath, "WriteFile.txt"), text);
// Create a string array with the additional lines of text
string[] lines = { "New line 1", "New line 2" };
// Append new lines of text to the file
File.AppendAllLines(Path.Combine(docPath, "WriteFile.txt"), lines);
}
}
// The example creates a file named "WriteFile.txt" with the contents:
// First line
// And then appends the following contents:
// New line 1
// New line 2
Imports System.IO
Class WriteFile
Public Shared Sub Main()
' Create a string array with the lines of text
Dim text As String = "First line" & Environment.NewLine
' Set a variable to the Documents path.
Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Write the text to a new file named "WriteFile.txt".
File.WriteAllText(Path.Combine(docPath, Convert.ToString("WriteFile.txt")), text)
' Create a string array with the additional lines of text
Dim lines() As String = {"New line 1", "New line 2"}
' Append new lines of text to the file
File.AppendAllLines(Path.Combine(docPath, Convert.ToString("WriteFile.txt")), lines)
End Sub
End Class
' The example creates a file named "WriteFile.txt" with the following contents:
' First line
' And then appends the following contents:
' New line 1
' New line 2