2014-03-26 8 views
0

문자열을 BufferedWriter를 사용하여 개행 문자로 보낼 수 있는지 궁금합니다. 컨텍스트에 대한버퍼링 된 작성기 - " n"내부에 문자열 작성

내가 네트워크를 통해 다음과 같은 문자열을 보낼 필요가 :

String message = "LOOKREPLY\nX...X\n.....\n.....\n.....\nX...X" 
socketOutput = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); 
socketOutput.write(message + "\n"); 

하지만이 때문에 개행 문자의 네트워크를 통해 6 메시지를 보냅니다. 클라이언트 측에서 다시 빌드 할 수 있지만 좀 더 간단하고 간단한 방법이 있는지 궁금해하고있었습니다.

bw.write(message+"\n"); 

모든 메시지가 기록 된 후에는 \n을 넣어 것입니다 귀하의 코드에서

+2

우연히'BufferedReader.readline()'을 사용하여 다른 쪽 끝에서 읽는 중입니까? 그 방법은 명시 적으로 줄 바꿈까지 버립니다. 따라서 6 개의 메시지를 보내는 것이 아니라 6 개의 메시지로 하나의 메시지를 읽는 것입니다. 개행을 보존하고 싶다면,'read()'메소드를 사용해야합니다. 그렇지 않으면, 수신 한 후에 보내기와 이스케이프 해제를하기 전에 이스케이프해야합니다. – dlev

+1

@dlev 네가 네가 맞다. 그래서 그는 "6 개의 메시지"라고 말했다. –

+1

메시지 구분 기호가 \ n 인 경우 6 개의 메시지를 보냈습니다. 당신은 당신이 무엇을하려고하는지 당신의 마음을 정해야합니다. 메시지 안의 새 줄을 이스케이프 규칙으로 처리해야 할 수도 있습니다. – EJP

답변

1

.

BufferedWriter

그것은 단지 하나를 보낼 것입니다하지만 당신은 당신의 문자열에 \n을 내 주면서이 그에 따라 작성합니다 (6) 메시지를 전송하지 않습니다.

delv는 \n에 이스케이프 시퀀스를 넣을 수 있으므로 한 줄만 씁니다.

String message = "LOOKREPLY\\nX...X\\n.....\\n.....\\n.....\\nX...X"; 

메시지는 다음과 같이 작성됩니다.

LOOKREPLY\nX...X\n.....\n.....\n.....\nX...X 
+0

나는 당신의 도움에 감사드립니다. – deadfire19

+0

좋습니다. 문제 없습니다. 친구에게 도움이됩니다. :) –