我有一个客户端服务器程序,它必须发送一个文件的内容作为一个字符串,并且无法决定如何结束包含BufferedReader.read方法的while循环。有代码:使用BufferedReader.read()处理'文件'结尾
while((c = in.read()) != -1){
fw.write((char)c);
System.out.print((char)c);
}
但因为它使用的插座,它从来没有达到-1直到关闭套接字。我无法弄清楚while循环的结束语。有没有特殊字符?
去与:
while((line = in.readLine()) != null && !line.equals(BasicProtocol.SENDING_FILE_DONE))
其中SENDING_FILE_DONE是被添加到该流的结尾的字符串。这不是一个好的方法,但必须以这种方式(我相信),当数据必须是一个字符串。
我还没有做到这一点,所以我不知道为什么在写入到套接字时到达文件末尾时写入-1? – Thihara 2013-03-21 02:44:53
你尝试in.readLine(),如果它工作,那么你只需要检查空? – 2013-03-21 02:45:20
@Thihara没有工作我害怕 – Titus 2013-03-21 02:49:21