Bagikan melalui


OracleBFile.Read(Byte[], Int32, Int32) Metode

Definisi

Membaca urutan byte dari aliran saat ini OracleBFile dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.

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

Parameter

buffer
Byte[]

Array byte. Ketika metode ini kembali, buffer berisi array byte yang ditentukan dengan nilai antara offset dan (offset + count) digantikan oleh byte yang dibaca dari sumber saat ini.

offset
Int32

Offset byte berbasis nol untuk buffer mulai menyimpan data yang dibaca dari aliran saat ini.

count
Int32

Jumlah maksimum byte yang akan dibaca dari aliran saat ini.

Mengembalikan

Jumlah total byte yang dibaca ke dalam buffer. Ini mungkin kurang dari jumlah byte yang diminta jika banyak byte yang saat ini tidak tersedia, atau nol jika akhir file telah tercapai.

Pengecualian

Jumlah offset dan count lebih besar dari panjang buffer.

buffer adalah referensi null (Nothing di Visual Basic).

offset atau count negatif.

Koneksi yang BFILE dikaitkan ditutup.

Terjadi kesalahan I/O.

Metode dipanggil setelah aliran ditutup atau dibuang.

Keterangan

Metode Read membaca maksimum count byte dari aliran saat ini dan menyimpannya di buffer awal di offset. Posisi saat ini dalam aliran dimajukan dengan jumlah byte yang dibaca; namun, jika pengecualian terjadi, posisi saat ini dalam aliran tetap tidak berubah. Read mengembalikan jumlah byte yang dibaca. Nilai yang dikembalikan adalah nol hanya jika posisi saat ini berada di akhir aliran. Read akan memblokir hingga setidaknya satu byte data dapat dibaca, jika tidak ada data yang tersedia. Read mengembalikan 0 hanya ketika akhir file telah tercapai. Read bebas untuk mengembalikan lebih sedikit byte daripada yang diminta bahkan jika akhir aliran belum tercapai.

Setiap upaya untuk mengakses tertutup OracleBFile menggunakan Read metode atau Seek membuka OracleBFile kembali aliran secara otomatis.

Contoh C# berikut mengasumsikan skema ini dalam tabel Oracle:

(col1 number, col2 BFILE)  

Contoh menunjukkan menggunakan Read metode dan Seek untuk mengakses OracleBFile objek.

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);  
        }  
    }  
}  

Berlaku untuk