【发布时间】:2012-12-24 13:38:34
【问题描述】:
有没有更好的方法从 InputStreamReader 中读取字符串。 在 Profiler 中,我在那里得到了一个内存堆。
public String getClientMessage() throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(tempSocket.getInputStream()));
char[] buffer = new char[200];
return new String(buffer, 0, bufferedReader.read(buffer));
}
提前致谢。
编辑:
编辑: 消息是这样发送的:
public void sendServerMessage(String action) throws IOException{
PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(tempSocket.getOutputStream()));
printWriter.print(action);
printWriter.flush();
}
【问题讨论】:
-
您正在“获取内存堆”?这是什么意思?
-
我在您的屏幕截图中看不到任何问题,除非您意外执行 getClientMessage 太多。
-
我每隔一秒执行一次getClientMessage
-
好吧,亲爱的,我们不知道这些方法是如何相互交错的,所以这可能是更深层次的问题。
-
这很有趣:你从
tempSocket读取一些值并将其写回tempSocket。某种echo服务,是吗?
标签: java string sockets heap-memory inputstream