FileRecordSequence Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi instans baru kelas FileRecordSequence.
Overload
FileRecordSequence(String) |
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu. |
FileRecordSequence(String, FileAccess) |
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu dan mode akses. |
FileRecordSequence(String, FileAccess, Int32) |
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu, mode akses, dan ukuran file. |
FileRecordSequence(String)
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu.
public:
FileRecordSequence(System::String ^ path);
public FileRecordSequence (string path);
new System.IO.Log.FileRecordSequence : string -> System.IO.Log.FileRecordSequence
Public Sub New (path As String)
Parameter
- path
- String
Jalur relatif atau absolut untuk file yang akan dirangkum instans ini FileRecordSequence .
Pengecualian
File yang ditentukan oleh path
tidak valid.
File yang ditentukan oleh path
tidak dapat ditemukan.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
Memori tidak cukup untuk melanjutkan eksekusi program.
Akses untuk penyimpanan log yang ditentukan ditolak oleh sistem operasi.
Contoh
Contoh berikut membuat urutan rekaman, menambahkan rekaman ke dalamnya, membaca rekaman, dan akhirnya membuang urutan.
public class MyLog
{
string logName = "test.log";
FileRecordSequence sequence = null;
bool delete = true;
public MyLog()
{
// Create a FileRecordSequence.
sequence = new FileRecordSequence(logName, FileAccess.ReadWrite);
}
// Append records to the record sequence.
public void AppendRecords()
{
Console.WriteLine("Appending Log Records...");
SequenceNumber previous = SequenceNumber.Invalid;
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
previous = sequence.Append(CreateData("Using FileRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush);
Console.WriteLine("Done...");
}
// Read the records added to the log.
public void ReadRecords()
{
Encoding enc = Encoding.Unicode;
Console.WriteLine();
Console.WriteLine("Reading Log Records...");
try
{
foreach (LogRecord record in this.sequence.ReadLogRecords(this.sequence.BaseSequenceNumber, LogRecordEnumeratorType.Next))
{
byte[] data = new byte[record.Data.Length];
record.Data.Read(data, 0, (int)record.Data.Length);
string mystr = enc.GetString(data);
Console.WriteLine(" {0}", mystr);
}
}
catch (Exception e)
{
Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message);
}
Console.WriteLine();
}
// Dispose the record sequence and delete the log file.
public void Cleanup()
{
// Dispose the sequence.
sequence.Dispose();
// Delete the log file.
if (delete)
{
try
{
File.Delete(this.logName);
}
catch (Exception e)
{
Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message);
}
}
}
// Converts the given data to an Array of ArraySegment<byte>
public static IList<ArraySegment<byte>> CreateData(string str)
{
Encoding enc = Encoding.Unicode;
byte[] array = enc.GetBytes(str);
ArraySegment<byte>[] segments = new ArraySegment<byte>[1];
segments[0] = new ArraySegment<byte>(array);
return Array.AsReadOnly<ArraySegment<byte>>(segments);
}
}
class LogSample
{
static void Main2(string[] args)
{
MyLog log = new MyLog();
log.AppendRecords();
log.ReadRecords();
log.Cleanup();
}
}
Public Class MyLog
Private logName As String = "test.log"
Private sequence As FileRecordSequence = Nothing
Private delete As Boolean = True
Public Sub New()
' Create a FileRecordSequence.
sequence = New FileRecordSequence(logName, FileAccess.ReadWrite)
End Sub
' Append records to the record sequence.
Public Sub AppendRecords()
Console.WriteLine("Appending Log Records...")
Dim previous As SequenceNumber = SequenceNumber.Invalid
previous = sequence.Append(CreateData("Hello World!"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("This is my first Logging App"), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
previous = sequence.Append(CreateData("Using FileRecordSequence..."), SequenceNumber.Invalid, SequenceNumber.Invalid, RecordAppendOptions.ForceFlush)
Console.WriteLine("Done...")
End Sub
' Read the records added to the log.
Public Sub ReadRecords()
Dim enc As Encoding = Encoding.Unicode
Console.WriteLine()
Console.WriteLine("Reading Log Records...")
Try
For Each record In Me.sequence.ReadLogRecords(Me.sequence.BaseSequenceNumber, LogRecordEnumeratorType.Next)
Dim data(record.Data.Length - 1) As Byte
record.Data.Read(data, 0, CInt(Fix(record.Data.Length)))
Dim mystr As String = enc.GetString(data)
Console.WriteLine(" {0}", mystr)
Next record
Catch e As Exception
Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message)
End Try
Console.WriteLine()
End Sub
' Dispose the record sequence and delete the log file.
Public Sub Cleanup()
' Dispose the sequence.
sequence.Dispose()
' Delete the log file.
If delete Then
Try
File.Delete(Me.logName)
Catch e As Exception
Console.WriteLine("Exception {0} {1}", e.GetType(), e.Message)
End Try
End If
End Sub
' Converts the given data to an Array of ArraySegment<byte>
Public Shared Function CreateData(ByVal str As String) As IList(Of ArraySegment(Of Byte))
Dim enc As Encoding = Encoding.Unicode
Dim array() As Byte = enc.GetBytes(str)
Dim segments(0) As ArraySegment(Of Byte)
segments(0) = New ArraySegment(Of Byte)(array)
Return System.Array.AsReadOnly(Of ArraySegment(Of Byte))(segments)
End Function
End Class
Friend Class LogSample
Private Shared Sub Main2(ByVal args() As String)
Dim log As New MyLog()
log.AppendRecords()
log.ReadRecords()
log.Cleanup()
End Sub
End Class
Keterangan
Konstruktor ini membuat akses baca/tulis ke file, dan membuka file dengan akses Baca berbagi. Ini berarti bahwa permintaan untuk membuka file untuk ditulis oleh ini atau proses lain gagal sampai instans ini FileRecordSequence dibuang, tetapi upaya baca akan berhasil. Jika path
tidak ditemukan, file baru dibuat dengan ukuran 0 byte.
Berlaku untuk
FileRecordSequence(String, FileAccess)
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu dan mode akses.
public:
FileRecordSequence(System::String ^ path, System::IO::FileAccess access);
public FileRecordSequence (string path, System.IO.FileAccess access);
new System.IO.Log.FileRecordSequence : string * System.IO.FileAccess -> System.IO.Log.FileRecordSequence
Public Sub New (path As String, access As FileAccess)
Parameter
- path
- String
Jalur relatif atau absolut untuk file yang akan dirangkum instans ini FileRecordSequence .
- access
- FileAccess
Nilai valid FileAccess yang mengontrol jenis akses yang dimiliki pengguna ke file log.
Pengecualian
File yang ditentukan oleh path
tidak valid.
File yang ditentukan oleh path
tidak dapat ditemukan.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
Memori tidak cukup untuk melanjutkan eksekusi program.
Akses untuk penyimpanan log yang ditentukan ditolak oleh sistem operasi.
Berlaku untuk
FileRecordSequence(String, FileAccess, Int32)
Menginisialisasi instans FileRecordSequence baru kelas dengan file tertentu, mode akses, dan ukuran file.
public:
FileRecordSequence(System::String ^ path, System::IO::FileAccess access, int size);
public FileRecordSequence (string path, System.IO.FileAccess access, int size);
new System.IO.Log.FileRecordSequence : string * System.IO.FileAccess * int -> System.IO.Log.FileRecordSequence
Public Sub New (path As String, access As FileAccess, size As Integer)
Parameter
- path
- String
Jalur relatif atau absolut untuk file yang akan dirangkum instans ini FileRecordSequence .
- access
- FileAccess
Nilai valid FileAccess yang mengontrol jenis akses yang dimiliki pengguna ke file log.
- size
- Int32
Ukuran file log yang akan dibuka.
Pengecualian
Satu atau beberapa parameter berada di luar rentang yang valid.
File yang ditentukan oleh path
tidak valid.
File yang ditentukan oleh path
tidak dapat ditemukan.
Permintaan tidak dapat dilakukan karena pengecualian I/O yang tidak terduga.
Memori tidak cukup untuk melanjutkan eksekusi program.
Akses untuk penyimpanan log yang ditentukan ditolak oleh sistem operasi.