Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用TcpClient和StreamWriter时出错_C#_Tcpclient_Streamwriter - Fatal编程技术网

C# 使用TcpClient和StreamWriter时出错

C# 使用TcpClient和StreamWriter时出错,c#,tcpclient,streamwriter,C#,Tcpclient,Streamwriter,我的目标是编写一个简单的程序,可以从TCP服务器获取一些文本流,并将其写入.txt文件(或DB,但目前txt文件还可以)。但是如果我尝试运行下面的代码,它根本不会向文件中写入任何内容。该文件保持为空,仅当我删除while循环时才有效:如果我删除它,程序将在文件中写入字符串“ciao”。否则他甚至不会写,也不会抛出任何异常。它快把我逼疯了。。。。不管怎样,我做对了吗?有更好的方法吗 谢谢!!!:) 只有删除while循环,它才能工作 在我看来,问题只是文件保持在编辑模式(写入的文本被缓冲),并且永

我的目标是编写一个简单的程序,可以从TCP服务器获取一些文本流,并将其写入.txt文件(或DB,但目前txt文件还可以)。但是如果我尝试运行下面的代码,它根本不会向文件中写入任何内容。该文件保持为空,仅当我删除while循环时才有效:如果我删除它,程序将在文件中写入字符串“ciao”。否则他甚至不会写,也不会抛出任何异常。它快把我逼疯了。。。。不管怎样,我做对了吗?有更好的方法吗

谢谢!!!:)

只有删除while循环,它才能工作

在我看来,问题只是文件保持在编辑模式(写入的文本被缓冲),并且永远不会被写入(在关闭/释放时)

试一试如果你在几行之后终止读行会发生什么。它被写入文件了吗?我相信是的。刷新缓冲区是将中间结果写入文件的一个选项,因此将其放在
sw.WriteLine(数据)之后

只有删除while循环,它才能工作

在我看来,问题只是文件保持在编辑模式(写入的文本被缓冲),并且永远不会被写入(在关闭/释放时)

试一试如果你在几行之后终止读行会发生什么。它被写入文件了吗?我相信是的。刷新缓冲区是将中间结果写入文件的一个选项,因此将其放在
sw.WriteLine(数据)之后


您可能想要
.Flush
您的写入程序…您可能想要
.Flush
您的写入程序。。。
public static void Main()
{
    TcpClient client = new TcpClient();

    Console.WriteLine("In connessione.....");

    client.Connect("192.168.5.200", 4001);

    Console.WriteLine("Connesso");

    StreamReader sr = new StreamReader( client.GetStream() );

    string data = sr.ReadLine();

    using (StreamWriter sw = File.AppendText(@"C:\Users\Public\Documents\test.txt"))
    {
        sw.WriteLine("ciao");

        while (data != null)
        {
            Console.WriteLine(data);
            sw.WriteLine(data);
            data = sr.ReadLine();
        }
    }

}
sw.Flush();