2011-01-15 4 views
1

자바에서는 과 같은 다른 객체가 있습니다. 서버에서받은 데이터를 읽는 BufferedReader ?? 서버가 줄 바꿈없이 문자열을 보내고 클라이언트가 모든 형식의 메시지를 인쇄하고 서버가 시간 초과 메시지를 보내면 서버가 연결 형식 시간 초과 (시간 초과 메시지에 줄 바꿈이 있음) ! 감사합니다.BufferedReader, 문자열을 얻기위한 다른 객체

+2

다음은 자바 API는 않습니다이다 (이것은 원래의 뉴 라인뿐만 아니라 보존) : http://java.sun.com/ javase/6/docs/api/- 사용법을 배웁니다. –

+2

Michael, 그다지 도움이되지 않습니다. 전체 클래스 라이브러리 또는 프레임 워크에 접근하는 것은 상당히 어려울 수 있습니다. 그리고 당신이 한 모든 것이 작은 텍스트 파일이나 콘솔 I/O (초보자 프로그래밍 작업에는 무리가 아닌)라면, BufferedReader가 실제로 알고있는 유일한 것일 수 있습니다 (그리고 이봐 요, 그것은 확실히 편리한 readLine() 메소드를 가지고 있습니다)). – Joey

+2

Joey : Michael의 의견은 사실 자연 스럽지만 그의 조언은 확실합니다. Java에 능숙한 사람은 모두 Java API에 대한 자신의 방법을 찾는 방법을 알고 있으며, Java API와 유사한 성격의 질문이있는 순간 Java API를 첫 번째 소스로 사용합니다. Java API에서 물건을 찾는 방법을 배우는 것이 가장 중요합니다. Java는 최고의 API 문서 세트 중 하나를 가지고 있다는 점에서 축복을받습니다. – whaley

답변

1

서버에서 내용을 읽을 때 통신 프로토콜을 엄격히 준수해야합니다. 예를 들어, 서버는 HTTP 서버 또는 SMTP 서버 일 수 있으며 전송하기 전에 데이터를 암호화 할 수 있으며 일부 데이터는 다르게 인코딩 될 수 있습니다.

기본적으로 질문해야합니다. 어떤 종류의 서버에 액세스하고 싶습니까? 바이트를 어떻게 보내나요? 그리고 다른 누군가가 이미 바이트를 해석하여 실제로 원하는 데이터를 빠르게 얻을 수 있습니까?

HTTP 서버 인 경우 new URL("http://example.org/").openStream() 코드를 사용할 수 있습니다. 그런 다음 바이트 스트림을 가져옵니다. 이러한 바이트를 문자, 문자열 및 기타 항목으로 변환하는 방법은 다른 작업입니다.

2

readLine() 메서드를 사용하여 개행 문자를 읽지 말고 read() 메서드를 사용하여 char-by-char를 읽으십시오.

for (int c = 0; (c = reader.read()) > -1;) { 
    System.out.print((char) c); 
} 
2

다른 클래스를 사용하도록 요청한 경우,이 경우 Scanner을 시도하십시오. 일반적으로 패턴 또는 입력에서 유추 된 유형 (예 : 바이트 단위 또는 int 단위 또는 그 조합)에 따라 입력을 구분하는 데 사용됩니다. 그러나 유스 케이스를 다루기 위해 여기를 범용 "리더"로 사용할 수도 있습니다.

0

당신은

InputStream is = ... // from input 
String text = IOUtils.toString(is); 

가 줄 바꿈하지 않고, 텍스트로 입력을 전환 시도 할 수는

관련 문제