我有一个文件列表,我需要按特定顺序将它们读取到给定大小的byte [].这对于单个文件本身不是问题,简单的((got = fs.Read(piece,0,pieceLength))> 0)完成工作完全正常.文件的最后一段可能比期望的要小,这很好.
现在,有一个棘手的问题:如果我有多个文件,我需要有一个连续的流,这意味着如果文件的最后一块小于pieceLength,那么我需要读取(pieceLength-got)的下一个文件,然后继续,直到最后一个文件的结尾.
基本上,给定X文件,我将始终读取完全为pieceLength long的部分,除了最后一个文件的最后一部分,它可能更小.
我只是想知道是否已经在.net(3.5 SP1)中构建了一些功能.我目前的方法是创建一个接受文件列表然后公开Read(byte[] buffer, long index, long length)函数的类,类似于FileStream.Read().这应该是非常直接的,因为我不必更改我的读取数据的调用代码,但在重新发明轮子之前,我只想仔细检查轮子是否已经内置到BCL中.
谢谢 :)
我想将以下传统的for循环转换为C++ 11 for-each循环,而不需要额外的循环结构:
int a[] = { 5, 6, 7, 8, 9, 10 };
int b[] = { 50, 60, 70, 80, 90, 100 };
// Swap a and b array elements
for (int i = 0; i < sizeof(a)/sizeof(a[0]); i++)
{
a[i] ^= b[i]; b[i] ^= a[i]; a[i] ^= b[i];
}
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以在C++ 11 for-each循环中提供多个变量,如:
for (int i, int j : ...)
Run Code Online (Sandbox Code Playgroud)