C# 代码如下(基于 .net 5.0):
static void Main(string[] args)
{
using (var fs = File.Open("data.txt", FileMode.Open, FileAccess.Read))
using (var bs = new BufferedStream(fs))
using (var sr = new StreamReader(bs))
Console.WriteLine(sr.Read());
}
data.txt保存的数据是
1000000
请问如何读取这个数据?Console.WriteLine(sr.Read())
的结果是 49
不好意思,是我弄错了,不应该将数字以字符串的形式保存在文本文件中。
后来的实现代码如下:
class Program
{
static void Main(string[] args)
{
var fileName = "test.data";
using (var writeFs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
writeFs.Write(BitConverter.GetBytes(1000000));
}
using var fs = File.Open(fileName, FileMode.Open, FileAccess.Read);
using var bs = new BufferedStream(fs);
Span<byte> bufferSpan = new byte[1024];
bs.Read(bufferSpan);
var value = BinaryPrimitives.ReadInt32LittleEndian(bufferSpan.Slice(0, 4));
Console.WriteLine(value);
}
}
没错呀, 读到的第一个byte
是 49
, 是你文本1000000
里面的 1
没太懂你想干嘛, data.txt是单行一个数据, 有N行数据, 然后code要每次读取一行的数字?