我有一個客戶端服務器程序,它必須發送一個文件的內容作爲一個字符串,並且無法決定如何結束包含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