我使用此代碼如何使用File.ReadAllBytes在塊
string location1 = textBox2.Text;
byte[] bytes = File.ReadAllBytes(location1);
string text = (Convert.ToBase64String(bytes));
richTextBox1.Text = text;
但是當我使用的文件太大,我得到了內存異常。
我想在區塊中使用File.ReadAllBytes
。我見過這樣的代碼下面
System.IO.FileStream fs = new System.IO.FileStream(textBox2.Text, System.IO.FileMode.Open);
byte[] buf = new byte[BUF_SIZE];
int bytesRead;
// Read the file one kilobyte at a time.
do
{
bytesRead = fs.Read(buf, 0, BUF_SIZE);
// 'buf' contains the last 1024 bytes read of the file.
} while (bytesRead == BUF_SIZE);
fs.Close();
}
但我不知道如何實際轉換bytesRead
爲字節數組,我將轉換爲文本。
編輯:找到答案。這是代碼!
private void button1_Click(object sender, EventArgs e)
{
const int MAX_BUFFER = 2048;
byte[] Buffer = new byte[MAX_BUFFER];
int BytesRead;
using (System.IO.FileStream fileStream = new FileStream(textBox2.Text, FileMode.Open, FileAccess.Read))
while ((BytesRead = fileStream.Read(Buffer, 0, MAX_BUFFER)) != 0)
{
string text = (Convert.ToBase64String(Buffer));
textBox1.Text = text;
}
}
要更改其是文本格式的可讀字節,創建一個新的字節,並使其等於 (Convert.FromBase64String(文本))。感謝大家!
我嘗試。你能幫我嗎?如何將所有bufs轉換爲一個大陣列? – Layne3 2012-07-22 02:13:49
你爲什麼要那樣做?這大大破壞了大塊閱讀的全部目的!這正是ReadAllBytes所做的那樣 – 2012-07-22 02:14:43
好吧,我知道它,所以每次它在塊中讀取它,我在哪裏將其轉換爲字符串並將其添加到文本框。像代碼 – Layne3 2012-07-22 02:17:56