【发布时间】:2016-08-04 13:38:27
【问题描述】:
我有一个上传器,用于拆分文件并将它们上传到我的 sql 服务器。然后我下载每个块并创建一个临时文件。 我正在尝试将字节数组(byte [])列表写入一个文件以重新创建该文件。这是因为当我尝试读取字节数组列表时 进入一个数组,我得到一个 OutOfMemory 异常。我只是想知道最好的方法是什么。谢谢!
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
int currentRowSelection = fUS_FileDataGridView.CurrentCell.RowIndex;
var totalNumber = fUS_FileDataGridView.Rows[currentRowSelection].Cells[6].Value;
for (int i = 1; i < 149; i++)
{
using (var stream1 = new FileStream(path + @"\" + i + ".zip", FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream1))
{
list_.Add(reader.ReadBytes((int)stream1.Length));
stream1.Close();
stream1.Dispose();
reader.Close();
reader.Dispose();
}
}
}
//array_ = list_.SelectMany(a => a).ToArray();
filePaths_ = @"C:\Users\ATLAS\Desktop\13\fun.zip";
foreach (byte[] bytes in list_)
{
var doc = System.Text.Encoding.Default.GetString(bytes);
string textToAdd1 = bytes.ToString();
try
{
using (FileStream fs = File.Create(filePaths_))
using (StreamWriter writer = new StreamWriter(fs, Encoding.Default, 512))
{
writer.Write(textToAdd1);
writer.Close();
writer.Dispose();
}
}
finally
{
}
}
}
更新:我的问题与我发现的其他问题不同,因为我无法将字节数组列表放入单个数组中来写入文件。我目前只从我的代码中得到一个 1 KB 的文件,而我应该得到一个 100 KB 的文件。
更新 2:下面的代码更有意义,但现在我收到“流不可写错误”
filePaths_ = @"C:\Users\ATLAS\Desktop\13\fun.zip";
using (FileStream fs = File.Create(filePaths_))
for (int i = 0; i < 151; i++)
{
using (var stream1 = new FileStream(path + @"\" + i + ".zip", FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream1))
{
using (StreamWriter writer = new StreamWriter(fs, Encoding.Default, 512))
{
writer.Write(reader);
}
}
}
}
【问题讨论】:
-
@NarekArzumanyan 该页面上的任何内容都不会将“List
”写入文件吗?我无法将其放入单个数组中,因为出现内存不足异常
标签: c# arrays visual-studio download byte