Cara: Menulis teks ke file
Artikel ini memperlihatkan berbagai cara untuk menulis teks ke file untuk aplikasi .NET.
Kelas dan metode berikut ini biasanya digunakan untuk menulis teks ke file:
StreamWriter berisi metode untuk menulis ke file secara sinkron (Write dan WriteLine), atau secara asinkron (WriteAsync dan WriteLineAsync).
File menyediakan metode statis untuk menulis teks ke file seperti WriteAllLines dan WriteAllText, atau untuk menambahkan teks ke file seperti AppendAllLines, AppendAllText, dan AppendText.
Path adalah untuk string yang memiliki informasi jalur file atau direktori. Ini berisi Combine metode dan di .NET Core 2.1 dan yang lebih baru Join , metode dan TryJoin . Metode ini memungkinkan Anda menggabungkan string untuk membangun file atau jalur direktori.
Catatan
Contoh berikut ini hanya menunjukkan jumlah minimum kode yang diperlukan. Aplikasi dunia-nyata biasanya menyediakan pemeriksaan kesalahan dan penanganan pengecualian yang lebih kuat.
Contoh: Menulis teks secara sinkron dengan StreamWriter
Contoh berikut menunjukkan cara menggunakan kelas StreamWriter untuk menulis teks secara sinkron ke file satu baris yang baru pada satu waktu. Karena objek StreamWriter dideklarasikan dan dibuat di dalam pernyataan using
, metode Dispose dipanggil, yang secara otomatis membersihkan dan menutup aliran.
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
Contoh: Menambahkan teks secara sinkron dengan StreamWriter
Contoh berikut menunjukkan cara menggunakan StreamWriter kelas untuk menambahkan teks secara sinkron ke file teks yang dibuat dalam contoh pertama:
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
Contoh: Menulis teks secara asinkron dengan StreamWriter
Contoh berikut menunjukkan cara menulis teks secara asinkron ke file yang baru menggunakan kelas StreamWriter. Untuk memanggil metode WriteAsync, panggilan metode harus berada di dalam metode async
.
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.
Contoh: Menulis dan menambahkan teks dengan kelas File
Contoh berikut ini menunjukkan cara menulis teks ke file baru, dan menambahkan baris teks baru ke file yang sama menggunakan kelas File. Metode WriteAllText dan AppendAllLines membuka dan menutup file secara otomatis. Jika jalur yang Anda berikan ke metode WriteAllText sudah ada, file akan ditimpa.
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