【发布时间】:2010-11-29 19:59:09
【问题描述】:
我一直在尝试实现 BufferedStreamReader 在 Java 中所做的事情。我打开了一个套接字流,只想以面向行的方式逐行读取它。
我有以下服务器代码。
while (continueProcess)
{
try
{
StreamReader reader = new StreamReader(Socket.GetStream(), Encoding.UTF8);
string command = reader.ReadLine();
if (command == null)
break;
OnClientExecute(command);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
以及以下客户端代码:
TcpClient tcpClient = new TcpClient();
try
{
tcpClient.Connect("localhost", serverPort);
StreamWriter writer = new StreamWriter(tcpClient.GetStream(), Encoding.UTF8);
writer.AutoFlush = true;
writer.WriteLine("login>user,pass");
writer.WriteLine("print>param1,param2,param3");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
tcpClient.Close();
}
服务器只读取第一行 (login>user,pass),然后 ReadLine 返回 null!
在 Java 的BufferedStreamReader 中实现这种面向行的阅读器的最简单方法是什么? :s
【问题讨论】:
-
请在此处处理您的对象(StreamReader 和 StreamWriter)。否则你可能会遇到意想不到的问题。只需在它们周围放置一个 using 块(如 using (StreamWriter writer = ...) { } ),您就可以了
-
与问题无关——只是一个建议。
标签: c# .net readline streamreader bufferedstream