MemoryStream Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yedekleme deposu bellek olan bir akış oluşturur.
public ref class MemoryStream : System::IO::Stream
public class MemoryStream : System.IO.Stream
[System.Serializable]
public class MemoryStream : System.IO.Stream
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class MemoryStream : System.IO.Stream
type MemoryStream = class
inherit Stream
[<System.Serializable>]
type MemoryStream = class
inherit Stream
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MemoryStream = class
inherit Stream
Public Class MemoryStream
Inherits Stream
- Devralma
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki kod örneğinde, yedekleme deposu olarak bellek kullanılarak verilerin nasıl okunduğu ve yazılması gösterilmektedir.
using System;
using System.IO;
using System.Text;
class MemStream
{
static void Main()
{
int count;
byte[] byteArray;
char[] charArray;
UnicodeEncoding uniEncoding = new UnicodeEncoding();
// Create the data to write to the stream.
byte[] firstString = uniEncoding.GetBytes(
"Invalid file path characters are: ");
byte[] secondString = uniEncoding.GetBytes(
Path.GetInvalidPathChars());
using(MemoryStream memStream = new MemoryStream(100))
{
// Write the first string to the stream.
memStream.Write(firstString, 0 , firstString.Length);
// Write the second string to the stream, byte by byte.
count = 0;
while(count < secondString.Length)
{
memStream.WriteByte(secondString[count++]);
}
// Write the stream properties to the console.
Console.WriteLine(
"Capacity = {0}, Length = {1}, Position = {2}\n",
memStream.Capacity.ToString(),
memStream.Length.ToString(),
memStream.Position.ToString());
// Set the position to the beginning of the stream.
memStream.Seek(0, SeekOrigin.Begin);
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
// Read the remaining bytes, byte by byte.
while(count < memStream.Length)
{
byteArray[count++] = (byte)memStream.ReadByte();
}
// Decode the byte array into a char array
// and write it to the console.
charArray = new char[uniEncoding.GetCharCount(
byteArray, 0, count)];
uniEncoding.GetDecoder().GetChars(
byteArray, 0, count, charArray, 0);
Console.WriteLine(charArray);
}
}
}
Imports System.IO
Imports System.Text
Module MemStream
Sub Main()
Dim count As Integer
Dim byteArray As Byte()
Dim charArray As Char()
Dim uniEncoding As New UnicodeEncoding()
' Create the data to write to the stream.
Dim firstString As Byte() = _
uniEncoding.GetBytes("Invalid file path characters are: ")
Dim secondString As Byte() = _
uniEncoding.GetBytes(Path.GetInvalidPathChars())
Dim memStream As New MemoryStream(100)
Try
' Write the first string to the stream.
memStream.Write(firstString, 0 , firstString.Length)
' Write the second string to the stream, byte by byte.
count = 0
While(count < secondString.Length)
memStream.WriteByte(secondString(count))
count += 1
End While
' Write the stream properties to the console.
Console.WriteLine( _
"Capacity = {0}, Length = {1}, Position = {2}", _
memStream.Capacity.ToString(), _
memStream.Length.ToString(), _
memStream.Position.ToString())
' Set the stream position to the beginning of the stream.
memStream.Seek(0, SeekOrigin.Begin)
' Read the first 20 bytes from the stream.
byteArray = _
New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)
' Read the remaining Bytes, Byte by Byte.
While(count < memStream.Length)
byteArray(count) = _
Convert.ToByte(memStream.ReadByte())
count += 1
End While
' Decode the Byte array into a Char array
' and write it to the console.
charArray = _
New Char(uniEncoding.GetCharCount( _
byteArray, 0, count)){}
uniEncoding.GetDecoder().GetChars( _
byteArray, 0, count, charArray, 0)
Console.WriteLine(charArray)
Finally
memStream.Close()
End Try
End Sub
End Module
Açıklamalar
Akışın geçerli konumu, bir sonraki okuma veya yazma işleminin gerçekleşebileceği konumdur. Geçerli konum yöntemi aracılığıyla Seek alınabilir veya ayarlanabilir. Yeni bir örneği MemoryStream oluşturulduğunda geçerli konum sıfır olarak ayarlanır.
Note
Bu tür arabirimini uygular IDisposable , ancak aslında atılacak kaynağı yoktur. Bu, doğrudan Dispose() çağırarak veya using (C#'de) ya da Using (Visual Basic) gibi bir dil yapısı kullanarak yok edilmesi gerekmediği anlamına gelir.
İmzasız bayt dizisiyle oluşturulan bellek akışları, verilerin yeniden boyutlandırılamayan bir akışını sağlar. Bayt dizisi kullanırken, oluşturucuya geçirilen parametrelere bağlı olarak var olan içeriği değiştirebilmenize rağmen akışın sonuna ekleyemez veya daraltamazsınız. Boş bellek akışları yeniden boyutlandırılabilir ve öğesine yazılabilir ve buradan okunabilir.
Bir MemoryStream nesne bir ResX dosyasına veya .resources dosyasına eklenirse, almak için çalışma zamanında yöntemini çağırın GetStream .
Bir MemoryStream nesne bir kaynak dosyasına seri hale getirilirse, aslında olarak UnmanagedMemoryStreamseri hale getirilir. Bu davranış, yöntemlere gitmek Stream zorunda kalmadan verilerin işaretçisini doğrudan alma özelliğinin yanı sıra daha iyi performans sağlar.
Oluşturucular
| Name | Description |
|---|---|
| MemoryStream() |
Sıfıra başlatılan genişletilebilir kapasiteyle sınıfının yeni bir örneğini MemoryStream başlatır. |
| MemoryStream(Byte[], Boolean) |
Belirtilen bayt dizisine göre sınıfın MemoryStream yeniden boyutlandırılamayan yeni bir örneğini, belirtilen özellik kümesiyle CanWrite başlatır. |
| MemoryStream(Byte[], Int32, Int32, Boolean, Boolean) |
Bir bayt dizisinin MemoryStream belirtilen bölgesine göre sınıfının yeni bir örneğini başlatır; CanWrite özellik belirtildiği gibi ayarlanır ve belirtilen şekilde küme çağrılabilir GetBuffer() . |
| MemoryStream(Byte[], Int32, Int32, Boolean) |
Özelliği belirtilen şekilde ayarlanmış bir bayt dizisinin MemoryStream belirtilen bölgesine göre sınıfın yeniden boyutlandırılamayan yeni bir örneğini CanWrite başlatır. |
| MemoryStream(Byte[], Int32, Int32) |
Bir bayt dizisinin MemoryStream belirtilen bölgesine (dizin) göre sınıfın yeniden boyutlandırılamayan yeni bir örneğini başlatır. |
| MemoryStream(Byte[]) |
Belirtilen bayt dizisine göre sınıfının yeniden boyutlandırılamayan yeni bir örneğini MemoryStream başlatır. |
| MemoryStream(Int32) |
Sınıfın MemoryStream yeni bir örneğini, belirtilen şekilde başlatılan genişletilebilir kapasiteyle başlatır. |
Özellikler
| Name | Description |
|---|---|
| CanRead |
Geçerli akışın okumayı destekleyip desteklemediğini belirten bir değer alır. |
| CanSeek |
Geçerli akışın aramayı destekleyip desteklemediğini belirten bir değer alır. |
| CanTimeout |
Geçerli akışın zaman aşımına neden olup olmadığını belirleyen bir değer alır. (Devralındığı yer: Stream) |
| CanWrite |
Geçerli akışın yazmayı destekleyip desteklemediğini belirten bir değer alır. |
| Capacity |
Bu akış için ayrılan bayt sayısını alır veya ayarlar. |
| Length |
Akışın bayt cinsinden uzunluğunu alır. |
| Position |
Akış içindeki geçerli konumu alır veya ayarlar. |
| ReadTimeout |
Akışın zaman aşımına uğramadan önce ne kadar süreyle okumayı deneyeceğini belirleyen bir değeri milisaniye cinsinden alır veya ayarlar. (Devralındığı yer: Stream) |
| WriteTimeout |
Akışın zaman aşımına uğramadan önce ne kadar süreyle yazmaya çalışacağını belirleyen bir değeri milisaniye cinsinden alır veya ayarlar. (Devralındığı yer: Stream) |
Yöntemler
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32, CancellationToken) düşünün.) |
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) düşünün.) (Devralındığı yer: Stream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32, CancellationToken) düşünün.) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) düşünün.) (Devralındığı yer: Stream) |
| Close() |
Okuma ve yazma akışını kapatır. |
| Close() |
Geçerli akışı kapatır ve geçerli akışla ilişkili tüm kaynakları (yuvalar ve dosya tanıtıcıları gibi) serbest bırakır. Bu yöntemi çağırmak yerine akışın düzgün şekilde atıldığından emin olun. (Devralındığı yer: Stream) |
| CopyTo(Stream, Int32) |
Geçerli bellek akışındaki baytları okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. |
| CopyTo(Stream, Int32) |
Geçerli akıştan baytları okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CopyTo(Stream) |
Geçerli akıştan baytları okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CopyToAsync(Stream, CancellationToken) |
Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen iptal belirtecini kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Belirtilen arabellek boyutu ve iptal belirtecini kullanarak geçerli akıştan tüm baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. |
| CopyToAsync(Stream, Int32, CancellationToken) |
Belirtilen arabellek boyutu ve iptal belirtecini kullanarak geçerli akıştan baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CopyToAsync(Stream, Int32) |
Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CopyToAsync(Stream) |
Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir. (Devralındığı yer: Stream) |
| CreateObjRef(Type) |
Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur. (Devralındığı yer: MarshalByRefObject) |
| CreateWaitHandle() |
Geçersiz.
Geçersiz.
Geçersiz.
Bir WaitHandle nesne ayırır. (Devralındığı yer: Stream) |
| Dispose() |
tarafından Streamkullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Stream) |
| Dispose(Boolean) |
sınıfı tarafından MemoryStream kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır. |
| DisposeAsync() |
tarafından Streamkullanılan yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakır. (Devralındığı yer: Stream) |
| EndRead(IAsyncResult) |
Bekleyen zaman uyumsuz okumanın tamamlanmasını bekler. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32, CancellationToken) düşünün.) |
| EndRead(IAsyncResult) |
Bekleyen zaman uyumsuz okumanın tamamlanmasını bekler. (Bunun yerine kullanmayı ReadAsync(Byte[], Int32, Int32) düşünün.) (Devralındığı yer: Stream) |
| EndWrite(IAsyncResult) |
Zaman uyumsuz yazma işlemini sonlandırır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32, CancellationToken) düşünün.) |
| EndWrite(IAsyncResult) |
Zaman uyumsuz yazma işlemini sonlandırır. (Bunun yerine kullanmayı WriteAsync(Byte[], Int32, Int32) düşünün.) (Devralındığı yer: Stream) |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| Flush() |
Flush() Hiçbir eylem gerçekleştirilmesi için yöntemini geçersiz kılar. |
| FlushAsync() |
Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur. (Devralındığı yer: Stream) |
| FlushAsync(CancellationToken) |
Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler ve iptal isteklerini izler. |
| GetBuffer() |
Bu akışın oluşturulduğu işaretsiz bayt dizisini döndürür. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetLifetimeService() |
Geçersiz.
Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır. (Devralındığı yer: MarshalByRefObject) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| InitializeLifetimeService() |
Geçersiz.
Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır. (Devralındığı yer: MarshalByRefObject) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| MemberwiseClone(Boolean) |
Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur. (Devralındığı yer: MarshalByRefObject) |
| ObjectInvariant() |
Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir. için Contractdestek sağlar. |
| ObjectInvariant() |
Geçersiz.
için Contractdestek sağlar. (Devralındığı yer: Stream) |
| Read(Byte[], Int32, Int32) |
Geçerli akıştan bir bayt bloğu okur ve verileri arabelleğe yazar. |
| Read(Span<Byte>) |
Geçerli bellek akışından bir bayt dizisi okur ve bellek akışındaki konumu okunan bayt sayısına göre ilerler. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler. |
| ReadAsync(Byte[], Int32, Int32) |
Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir. (Devralındığı yer: Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Geçerli bellek akışından bir bayt dizisini zaman uyumsuz olarak okur, dizinini içine |
| ReadAtLeast(Span<Byte>, Int32, Boolean) |
Geçerli akıştan en az bayt sayısını okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir. (Devralındığı yer: Stream) |
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Geçerli akıştan en az en az sayıda bayt zaman uyumsuz olarak okur, okunan bayt sayısına göre akıştaki konumu ilerletir ve iptal isteklerini izler. (Devralındığı yer: Stream) |
| ReadByte() |
Geçerli akıştan bir bayt okur. |
| ReadExactly(Byte[], Int32, Int32) |
|
| ReadExactly(Span<Byte>) |
Geçerli akıştan baytları okur ve doldurulana kadar |
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Geçerli akıştaki bayt sayısını zaman uyumsuz olarak okur |
| ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Geçerli akıştaki baytları zaman uyumsuz olarak okur, doldurulana kadar |
| Seek(Int64, SeekOrigin) |
Geçerli akış içindeki konumu belirtilen değere ayarlar. |
| SetLength(Int64) |
Geçerli akışın uzunluğunu belirtilen değere ayarlar. |
| ToArray() |
Özelliğinden bağımsız olarak akış içeriğini bir bayt dizisine Position yazar. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
| TryGetBuffer(ArraySegment<Byte>) |
Bu akışın oluşturulduğu işaretsiz bayt dizisini döndürür. Dönüş değeri, dönüştürmenin başarılı olup olmadığını gösterir. |
| Write(Byte[], Int32, Int32) |
Arabellekten okunan verileri kullanarak geçerli akışa bir bayt bloğu yazar. |
| Write(ReadOnlySpan<Byte>) |
içinde bulunan |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler. |
| WriteAsync(Byte[], Int32, Int32) |
Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir. (Devralındığı yer: Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
zaman uyumsuz olarak içindeki bayt |
| WriteByte(Byte) |
Geçerli akışa geçerli konumda bir bayt yazar. |
| WriteTo(Stream) |
Bu bellek akışının tüm içeriğini başka bir akışa yazar. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| IDisposable.Dispose() |
tarafından Streamkullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: Stream) |
Uzantı Metotları
| Name | Description |
|---|---|
| AsInputStream(Stream) |
Windows Mağazası uygulamaları için .NET'te yönetilen bir akışı Windows Çalışma Zamanı'ndaki bir giriş akışına dönüştürür. |
| AsOutputStream(Stream) |
Windows Mağazası uygulamaları için .NET'te yönetilen bir akışı Windows Çalışma Zamanı'ndaki bir çıkış akışına dönüştürür. |
| AsRandomAccessStream(Stream) |
Belirtilen akışı rastgele erişim akışına dönüştürür. |
| ConfigureAwait(IAsyncDisposable, Boolean) |
Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirileceğini yapılandırılır. |
| CopyToAsync(Stream, PipeWriter, CancellationToken) |
baytlarını Stream zaman uyumsuz olarak okur ve bir iptal belirteci kullanarak belirtilen PipeWriteröğesine yazar. |
| GetWindowsRuntimeBuffer(MemoryStream, Int32, Int32) |
bir Windows döndürür. Bellek içinde belirtilen bellek akışının temsil ettiği bir bölgeyi temsil eden Storage.Streams.IBuffer arabirimi. |
| GetWindowsRuntimeBuffer(MemoryStream) |
bir Windows döndürür. Belirtilen bellek akışıyla aynı belleği temsil eden Storage.Streams.IBuffer arabirimi. |