首页 新闻 会员 周边 捐助

C# StreamReader 读取数字的问题

0
悬赏园豆:30 [已解决问题] 解决于 2020-09-17 16:30

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

C#
dudu的主页 dudu | 高人七级 | 园豆:30925
提问于:2020-09-17 15:03
< >
分享
最佳答案
0

不好意思,是我弄错了,不应该将数字以字符串的形式保存在文本文件中。

后来的实现代码如下:

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);
    }
}
dudu | 高人七级 |园豆:30925 | 2020-09-17 16:30
其他回答(1)
0

没错呀, 读到的第一个byte49, 是你文本1000000 里面的 1

没太懂你想干嘛, data.txt是单行一个数据, 有N行数据, 然后code要每次读取一行的数字?

收获园豆:30
czd890 | 园豆:14488 (专家六级) | 2020-09-17 15:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册