Vaj*_*iaj 102 .net c# string operations
我需要测试一些与文件大小有关的负载问题.我有一个用C#编写的Windows应用程序,它将自动生成文件.我知道每个文件的大小,例如.100KB,以及要生成的文件数.我需要帮助的是如何生成小于或等于所需文件大小的字符串.
伪代码:
long fileSizeInKB = (1024 * 100); //100KB
int numberOfFiles = 5;
for(var i = 0; i < numberOfFiles - 1; i++) {
var dataSize = fileSizeInKB;
var buffer = new byte[dataSize];
using (var fs = new FileStream(File, FileMode.Create, FileAccess.Write)) {
}
}
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 298
你总是可以使用一个构造函数来获取字符串,这需要char
你想要重复该字符的次数和次数:
string myString = new string('*', 5000);
Run Code Online (Sandbox Code Playgroud)
这会给你一串5000颗星 - 根据你的需要进行调整.
小智 13
最简单的方法是遵循以下代码:
var content = new string('A', fileSizeInKB);
Run Code Online (Sandbox Code Playgroud)
现在你有了一个包含所需数量A的字符串.
要用Lorem Ipsum或其他一些重复字符串填充它,可以使用以下伪代码:
string contentString = "Lorem Ipsum...";
for (int i = 0; i < fileSizeInKB / contentString.Length; i++)
//write contentString to file
if (fileSizeInKB % contentString.Length > 0)
// write remaining substring of contentString to file
Run Code Online (Sandbox Code Playgroud)
编辑:如果你保存在Unicode中,你可能需要一半的文件大小,因为如果我没记错的话,unicode每个字符使用两个字节.
如何做到这一点有很多变体。一种是用一堆字符填充文件。您需要 100KB 吗?没问题.. 100 * 1024 * 8 = 819200 位。单个字符为 16 位。819200 / 16 = 51200。您需要将 51,200 个字符粘贴到一个文件中。但请考虑文件可能具有额外的标头/元数据,因此您可能需要考虑这一点并减少写入文件的字符数。
归档时间: |
|
查看次数: |
63640 次 |
最近记录: |