【发布时间】:2011-04-24 06:54:37
【问题描述】:
我需要使用 File.OpenRead 和 File.OpenWrite 方法将文件的内容写入另一个文件。我不知道该怎么做。
如何修改以下代码以适合我。
using (FileStream stream = File.OpenRead("C:\\file1.txt"))
using (FileStream writeStream = File.OpenWrite("D:\\file2.txt"))
{
BinaryReader reader = new BinaryReader(stream);
BinaryWriter writer = new BinaryWriter(writeStream);
writer.Write(reader.ReadBytes(stream.Length));
}
【问题讨论】:
-
您发布的代码有什么问题?你得到什么错误?
-
我对是否应该一次性读取所有字节感到困惑?除了 stream.length 很长而 reader.ReadBytes 期望 int 之外,还有什么含义。
-
您的问题是关键——您是否应该一口气读取所有字节?这意味着在调用这段代码时您希望进程使用多少内存(当然,基于文件大小)。一口气读完可能会消耗大量内存。其他答案显示了如何将其分成 1K 或 4K 位。如果将其分块,请注意它可能会导致性能下降。这些是你的取舍。分析您的情况并选择最适合您的要求。