OracleBFile.Read(Byte[], Int32, Int32) Yöntem

Tanım

Geçerli OracleBFile akıştan bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

Parametreler

buffer
Byte[]

Bayt dizisi. Bu yöntem döndürdüğünde arabellek, ve (offset + count) arasındaki offset değerlerin geçerli kaynaktan okunan baytlarla değiştirdiği belirtilen bayt dizisini içerir.

offset
Int32

Geçerli akıştan okunan verileri depolamaya başlayabileceğiniz sıfır tabanlı bayt uzaklığı buffer .

count
Int32

Geçerli akıştan okunacak en fazla bayt sayısı.

Döndürülenler

Arabelleğe okunan toplam bayt sayısı. Bu, şu anda kullanılabilir sayıda bayt yoksa istenen bayt sayısından az veya dosyanın sonuna ulaşıldıysa sıfır olabilir.

Özel durumlar

ve count toplamı offset arabellek uzunluğundan daha büyüktür.

buffer bir null başvurudur (Nothing Visual Basic'te).

offset veya count negatiftir.

ile ilişkilendirilen BFILE bağlantı kapatılır.

G/ç hatası oluştu.

Akış kapatıldıktan veya atıldıktan sonra yöntemler çağrıldı.

Açıklamalar

Read yöntemi geçerli akıştan en fazla count bayt sayısını okur ve başında depolar bufferoffset. Akış içindeki geçerli konum, okunan bayt sayısıyla gelişmiştir; ancak bir özel durum oluşursa akış içindeki geçerli konum değişmeden kalır. Read okunan bayt sayısını döndürür. Dönüş değeri yalnızca konum şu anda akışın sonundaysa sıfırdır. Read , kullanılabilir veri olmaması durumunda en az bir bayt veri okunana kadar engeller. Read yalnızca dosyanın sonuna ulaşıldığında 0 döndürür. Read akışın sonuna ulaşılmasa bile istenenden daha az bayt döndürmek ücretsizdir.

veya yöntemleri kullanılarak Read kapatılan OracleBFile bir akışa erişme girişimleri akışı otomatik olarak yeniden açarOracleBFile.Seek

Aşağıdaki C# örneği, bu şemanın bir Oracle tablosunda olduğunu varsayar:

(col1 number, col2 BFILE)  

Örnekte bir OracleBFile nesneye erişmek için ve Seek yöntemlerinin kullanılması Read gösterilmektedir.

byte[] buffer = new byte[100];  
OracleDataReader dataReader = command.ExecuteReader();  
using (dataReader) {  
    if (dataReader.Read()) {  
            OracleBFile BFile = dataReader.GetOracleBFile(1);  
        using (BFile) {  
            BFile.Seek(0, SeekOrigin.Begin);  
            BFile.Read(buffer, 0, 100);  
        }  
    }  
}  

Şunlara uygulanır