C# 使用TcpClient和StreamWriter时出错
我的目标是编写一个简单的程序,可以从TCP服务器获取一些文本流,并将其写入.txt文件(或DB,但目前txt文件还可以)。但是如果我尝试运行下面的代码,它根本不会向文件中写入任何内容。该文件保持为空,仅当我删除while循环时才有效:如果我删除它,程序将在文件中写入字符串“ciao”。否则他甚至不会写,也不会抛出任何异常。它快把我逼疯了。。。。不管怎样,我做对了吗?有更好的方法吗 谢谢!!!:) 只有删除while循环,它才能工作 在我看来,问题只是文件保持在编辑模式(写入的文本被缓冲),并且永远不会被写入(在关闭/释放时) 试一试如果你在几行之后终止读行会发生什么。它被写入文件了吗?我相信是的。刷新缓冲区是将中间结果写入文件的一个选项,因此将其放在C# 使用TcpClient和StreamWriter时出错,c#,tcpclient,streamwriter,C#,Tcpclient,Streamwriter,我的目标是编写一个简单的程序,可以从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();