我只需读取一行中的所有字节并将它们放入一个数组中,然后移到下一行,依此类推。
例如:
.txt文件
word
apple
zzz
现在在我的程序中,我必须在第一行读取一堆字节,而我的数组将由4个元素组成。我正在进行处理并转到下一行,依此类推。
我看过很多地方,但没有运气。理想情况下,我需要类似ReadAllBytes()
之类的东西,除了读取整个文件,我需要它只读一行。
编辑:因为我想要速度,我不能做ReadAllLines()或任何,这需要我先读取一个字符串,然后将其转换成一个字节数组。
EDIT2:我现在必须回溯一下,因为我知道我不是最好解释任何东西,但我试试。理想情况下,这就是我希望代码工作的方式
loop through all lines of txt file
loop through all bytes on that line
read the byte and process it
if I need to, I break the loop and move on to the next line
这只是为了更好地理解我的困境。
即使问题仍未解决,我仍然要感谢所有真正试图帮助我的人:谢谢你的尝试
答案 0 :(得分:4)
假设您的文本文件是ASCII:
var lines = File.ReadLines(@"c:\temp\foo.txt");
foreach (var line in lines)
{
byte[] bytes = Encoding.ASCII.GetBytes(line);
// do some processing with byte array
}
根据评论更新至ReadLines()
。
答案 1 :(得分:-1)
您可以使用 StreamReader.ReadLine 从特定文件中读取一行,然后将字符串转换为字节数组,最后完成工作。
using (var reader = File.OpenText(path))
{
string line;
while ((line = reader.ReadLine()) != null)
{
foreach (var item in Encoding.UTF8.GetBytes(line))
{
//do your work here
//break the foreach loop if the condition is not satisfied
}
}
}