我一直堅持使用此客戶端服務器編程,我希望服務器維護一個存儲客戶端發送的數據的文件。代碼如下:文件管理客戶端 - 服務器編程
客戶端:
public class ClientSide {
public static void main(String[] argv) throws Exception {
String sentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
clientSocket.close();
}
}
服務器端:現在
public class ServerSide {
public static void main(String[] args) throws IOException {
File file=new File("s1.txt");
ServerSocket servsock = new ServerSocket(6789);
Socket sock = servsock.accept();
byte[] mybytearray = new byte[1024];
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream(file,true);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int bytesRead = is.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);
bos.close();
sock.close();
BufferedReader write=new BufferedReader(new FileReader(file));
String line;
while((line=write.readLine())!=null) {
System.out.println(line);
}
}
}
,因爲用戶將數據發送到服務器,例如 '維納亞克' 是數據發送到服務器,只有第一個字符,即'V'被寫入文件。我必須錯過代碼中的東西,我無法找到它。此外,我已經問過類似的問題here但是,無法獲得所需的結果
在將readsByte寫入文件輸出流之前,嘗試在輸入流上調用flush。希望能幫助到你! – 2013-05-09 08:51:06
@JunedAhsan我猜InputStream不能被刷新 – 2013-05-09 09:08:21