我是 C# 的新手,但我对读取/写入大型 txt 文件进行了一些研究,最大的可能是 8GB,但如果太多,我会考虑将其拆分为 1GB。它必须快到 30MBytes/s。我找到了三种方法:用于顺序操作 FileStream 或 StreamReader/StreamWriter,用于随机访问 MemoryMappedFiles。现在我想先阅读文件。这是一个有效的代码示例:
FileStream fileStream = new FileStream(@"C:\Users\Guest4\Desktop\data.txt", FileMode.Open, FileAccess.Read);
try
{
int length = (int)fileStream.Length; // get file length
buffer = new byte[length]; // create buffer
int count; // actual number of bytes read
sum = 0; // total number of bytes read
// read until Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a buffer offset for next reading
}
finally
{
fileStream.Close();
}
你认为这是快速读取大文件的好方法吗?
阅读后我需要重新发送该文件。它必须是 16384 字节的块。每个块都将被发送,直到所有数据都被传输。并且这些块必须是字符串类型。你能建议我怎么做吗?拆分并转换为字符串。我想最好的方法是在读取所有文件之后发送该字符串块,但如果至少读取了 16384 个字节。