我在实习期间完成了一项任务,基本上就是这样(在Visual Studio 2013中,一切都是用C#制作的):
可能的输入参数必须是:
现在我并没有真正感兴趣的是只是拿到一个代码来执行此操作,因为这不会教会我什么。我有兴趣了解这是如何完成的,理解它,所以我可以自己做。
请注意,我知道这不是一个去的网站,只是为了让某人做你的作业 - 但也明白我对学习这个很感兴趣,而且我不知道其他地方(除了我的导师,但我不想每20分钟问他一次:P)
有人可以解释,或者可能会将我重定向到某个地方吗?也许只是给我一个暗示它是如何完成的? 我已经做了大约2周的C#,但我从未写过创建文件等的任何内容。
答案 0 :(得分:1)
创建新的二进制文件(特定文件夹)
...
刷新并关闭文件
C#使用名为 streams 的概念进行二进制输入/输出。
强制性文献:http://msdn.microsoft.com/en-us/library/k3352a4t(v=vs.110).aspx
这两种技术都在MSDN上进行了演示。
清空/删除文件(如果已存在)
实际上,如果不希望覆盖它,您只需要检查文件是否存在。
标记开始时间(毫秒精度)
...
标记结束时间(毫秒精度)
...
输出写入所有10 GB数据所花费的时间(结束时间 - 开始时间)
每秒输出的字节数。
查看System.Diagnostics
命名空间。
尽可能快地将10 GB的虚拟数据写入文件。 (写数据 作为1024字节虚拟数据的块,继续直到10 GB已经 写的)
最后,该计划的内容......
剧透警报!
你必须编写一个循环,在每次迭代时写入1024个字节,直到写入的总字节数达到10GB。
下面是一个代码示例,但没有错误检查(因为它不是必需的)。在现实世界中,您显然会编写处理异常的代码。
using (var fileStream = File.OpenWrite(path))
{
double fileSize = Math.Pow(10, 10); // 10 GB
int bufferSize = 1024; // 1KB
byte[] buffer = new byte[bufferSize]; // Create an array of zero's
for (int written = 0; written < fileSize; written += bufferSize)
{
// Write 1024 bytes (all zero's: 000000000000...0)
fileStream.Write(
array: buffer,
offset: 0,
count: bufferSize);
}
/* Optional inside a "using" block: */ fileStream.Flush();
}
答案 1 :(得分:0)
看看System.IO.File
。您想要创建一个文件流(静态File.Create
),然后在using
子句中,您将使用Stream.Write
通过该流写入数据。我不打算添加更多,你可以在MSDN等上找到足够的信息。但如果需要可以随意提出任何问题。
另外,对于挑剔,Mark start-time (millisecond precision)
会非常棘手,因为系统日期并不能保证你那种精确度。所以你可以打印出毫秒,但它不会准确到毫秒。有一个专门的类来测量时间间隔,找到并使用它:)
答案 2 :(得分:0)
在写入/创建文件方面,请查看此链接,这将有助于您了解System.IO
http://www.dotnetperls.com/streamreader
在记录流程所用的时间方面,请看一下:
http://www.dotnetperls.com/stopwatch
这将允许您记录(以毫秒为单位)该过程花费的时间。我知道这不会回答你的问题的所有,但它应该有所帮助。
答案 3 :(得分:0)
请查看以下内容以开始使用: