클라이언트가 보낸 데이터를 저장하는 파일을 서버가 유지하도록하려는이 클라이언트 - 서버 프로그래밍이 필요합니다. 다음과 같이 코드는 다음과 같습니다파일 관리 클라이언트 - 서버 프로그래밍
클라이언트 측 :
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);
}
}
}
이제이며 사용자가 'Vinayak'예를 들어, 서버에 데이터를 보내는으로 데이터가 서버로 전송되면 첫 번째 문자 'V'만 파일에 기록됩니다. 나는 코드에서 뭔가를 놓치고 있어야하고 나는 그것을 발견 할 수 없다. 또한 비슷한 질문을했습니다. here 그러나 원하는 결과를 얻지 못했습니다.
readsByte를 파일 출력 스트림에 쓰기 전에 입력 스트림에서 flush를 호출 해보십시오. 희망이 도움이됩니다! –
@JunedAhsan 나는 InputStream을 플러시 할 수 없다고 생각한다. –