asp教程.net file,filestream,byte應用轉換
file>>>filestream (2種方式)
方式1:
filestream fs1 = file.open ( @"d:集團通知.jpg" , filemode.open );
方式2:
filestream fs2 = new filestream ( @"d:通知.jpg" , filemode.open );
filestream>>>byte[]
byte [ ] b1 = new byte [ fs1.length ];
fs1.read ( b1 , 0 , b1.length );
把檔案儲存到資料庫教程中一般是file>>>filestream>>>byte[]
byte[]>>>file(2種方式)
假設byte[ ] b1裡面有資料
方式1:
file.writeallbytes ( @"d:通知b2.jpg" , b1 );
方式2:
filestream fs = new filestream ( @"d:通知b_2.jpg" , filemode.openorcreate , fileaccess.write );
fs.write ( b1 , 0 , b1.length );
fs.close ( );
filestream>>>filestream
有時需要把檔案流寫到ftp的請求流中,實際上是利用byte[]做了一個緩衝區
stream requeststream = uploadrequest.getrequeststream ( );
filestream filestream = file.open ( @"d:abc.txt" , filemode.open );
byte [ ] buffer = new byte [ 1024 ];
int bytesread;
while ( true )
{
bytesread = filestream.read ( buffer , 0 , buffer.length );
if ( bytesread == 0 )
break;
requeststream.write ( buffer , 0 , bytesread );
}
轉換到filestream byte() array throws outofmemoryexception
'open the filestream data file for writing
dim fs as new sqlfilestream(filepath, txcontext, fileaccess.write)
'open the source file for reading
dim localfile as new filestream("c:tempmicrosoftmouse.jpg",
filemode.open,
fileaccess.read)
'start transferring data from the source file to filestream data file
dim bw as new binarywriter(fs)
const buffersize as integer = 4096
dim buffer as byte() = new byte(buffersize) {}
dim bytes as integer = localfile.read(buffer, 0, buffersize)
while bytes > 0
bw.write(buffer, 0, bytes)
bw.flush()
bytes = localfile.read(buffer, 0, buffersize)
end while
'close the files
bw.close()
localfile.close()
fs.close()