StreamReader在Writeline函数上显示内容,但如果在变量中使用它,则返回空

发布于 2025-01-23 08:03:04 字数 667 浏览 2 评论 0原文

有人可以帮我解决这个问题吗?当我在Writeline上使用阅读器时,它会完美地写入消息,但是当我尝试保存作为变量时,它会返回一个空字符串。我这样做是因为之后我想将log保存在文件上。

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");

Can somebody help me solving this? When I use the reader on WriteLine it writes the message perfectly, but when I try to save as a variable too, it return an empty string. I'm doing this because I want to save the log on a file afterwards.

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");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰火雁神 2025-01-30 08:03:04

读者向一个方向读取:向前。如果您想两次读取相同的值,则必须备份并再次阅读。

修改您的代码如下:

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");

A reader reads in one direction: forward. If you want to read the same value twice, you have to back up and read it again.

Modify your code as follows:

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");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文