StreamReader 在 WriteLine 函数上显示内容,但如果在变量中使用它 return 为空

StreamReader shows content on WriteLine function but return empty if using it in a variable

有人可以帮我解决这个问题吗?当我在 WriteLine 上使用 reader 时,它会完美地写入消息,但是当我也尝试另存为变量时,它 return 是一个空字符串。我这样做是因为我想之后将日志保存在文件中。

using (var stream = ex.Response.GetResponseStream())
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    stream.Seek(0, SeekOrigin.Begin);
                    Console.WriteLine("Username: " + usernames[i]);
                    Console.WriteLine(reader.ReadToEnd());
                    content = reader.ReadToEnd().ToString();
                    Console.WriteLine(content);
                    Console.WriteLine("URL: https://api.bitbucket.org/2.0/users/" + usernames[i] + "\n");

A reader 朝一个方向阅读:向前。如果要读取相同的值两次,则必须备份并再次读取。

修改你的代码如下:

using (var stream = ex.Response.GetResponseStream())
using (var reader = new StreamReader(stream, Encoding.UTF8))
{
    stream.Seek(0, SeekOrigin.Begin);
    Console.WriteLine("Username: " + usernames[i]);
    Console.WriteLine(reader.ReadToEnd());

    stream.Seek(0, SeekOrigin.Begin);
    content = reader.ReadToEnd().ToString();
    Console.WriteLine(content);
    Console.WriteLine("URL: https://api.bitbucket.org/2.0/users/" + usernames[i] + "\n");