Практическое руководство. Открытие файла журнала и добавление в него данных
Классы StreamWriter и StreamReader предназначены для записи и чтения знаков из потоков. В следующем примере кода открывается файл log.txt в режиме ввода данных (если такого файла не существует, то он будет создан) и добавляется информация в конец файла. Затем содержимое файла передается для отображения в стандартный поток вывода. В качестве альтернативы данные здесь могут храниться как одна строка или как массив строк, а для обеспечения той же функциональности может быть использован метод WriteAllText WriteAllLines.
Примечание |
---|
Для создания файлов журналов и их ведения пользователи Visual Basic могут использовать методы и свойства, предоставляемые классом Log или FileSystem. |
Пример
Imports System
Imports System.IO
Class DirAppend
Public Shared Sub Main()
Using w As StreamWriter = File.AppendText("log.txt")
Log("Test1", w)
Log("Test2", w)
' Close the writer and underlying file.
w.Close()
End Using
' Open and read the file.
Using r As StreamReader = File.OpenText("log.txt")
DumpLog(r)
End Using
End Sub
Public Shared Sub Log(logMessage As String, w As TextWriter)
w.Write(vbCrLf + "Log Entry : ")
w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(), _
DateTime.Now.ToLongDateString())
w.WriteLine(" :")
w.WriteLine(" :{0}", logMessage)
w.WriteLine ("-------------------------------")
' Update the underlying file.
w.Flush()
End Sub
Public Shared Sub DumpLog(r As StreamReader)
' While not at the end of the file, read and write lines.
Dim line As String
line = r.ReadLine()
While Not (line Is Nothing)
Console.WriteLine(line)
line = r.ReadLine()
End While
r.Close()
End Sub
End Class
using System;
using System.IO;
class DirAppend
{
public static void Main()
{
using (StreamWriter w = File.AppendText("log.txt"))
{
Log("Test1", w);
Log("Test2", w);
// Close the writer and underlying file.
w.Close();
}
// Open and read the file.
using (StreamReader r = File.OpenText("log.txt"))
{
DumpLog(r);
}
}
public static void Log(string logMessage, TextWriter w)
{
w.Write("\r\nLog Entry : ");
w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
DateTime.Now.ToLongDateString());
w.WriteLine(" :");
w.WriteLine(" :{0}", logMessage);
w.WriteLine ("-------------------------------");
// Update the underlying file.
w.Flush();
}
public static void DumpLog(StreamReader r)
{
// While not at the end of the file, read and write lines.
string line;
while ((line = r.ReadLine()) != null)
{
Console.WriteLine(line);
}
r.Close();
}
}
using namespace System;
using namespace System::IO;
ref class DirAppend
{
public:
static void Main()
{
StreamWriter^ w = File::AppendText("log.txt");
Log("Test1", w);
Log("Test2", w);
// Close the writer and underlying file.
w->Close();
// Open and read the file.
StreamReader^ r = File::OpenText("log.txt");
DumpLog(r);
r->Close();
}
static void Log(String^ logMessage, TextWriter^ w)
{
w->Write("\r\nLog Entry : ");
w->WriteLine("{0} {1}", DateTime::Now.ToLongTimeString(),
DateTime::Now.ToLongDateString());
w->WriteLine(" :");
w->WriteLine(" :{0}", logMessage);
w->WriteLine ("-------------------------------");
// Update the underlying file.
w->Flush();
}
static void DumpLog(StreamReader^ r)
{
// While not at the end of the file, read and write lines.
String^ line;
while ((line = r->ReadLine()) != nullptr)
{
Console::WriteLine(line);
}
r->Close();
}
};
int main()
{
DirAppend::Main();
}
См. также
Задачи
Практическое руководство. Создание списка каталогов
Практическое руководство. Считывание из нового файла данных и запись в этот файл
Практическое руководство. Считывание текста из файла
Практическое руководство. Запись текста в файл
Практическое руководство. Считывание символов из строки
Практическое руководство. Запись символов в строку