2014-02-13 2 views
0

소켓 프로그래밍을 사용하여 Android 클라이언트 및 Java 서버 응용 프로그램을 만들려고합니다. 나는 자바 서버에서 보내지는 파일을 가져와야하지만 클라이언트 측의 다른 파일에 그 내용을 쓰려고하지는 않는다. 대신받은 파일의 내용으로 목록 상자를 만들고 싶습니다. 내가 파일에 이러한 내용을 작성하는 코드를 찾을 수 있지만 문자열로 내용에 액세스하는 방법을 몰라. 여기 InputStream의 데이터에 문자열로 액세스하는 방법은 무엇입니까?

내가 노력 코드입니다 :

안드로이드 클라이언트

client=new Socket("10.0.2.2", 7575); 
writer=new PrintWriter(client.getOutputStream(),true); 
writer.write(mMsg); 
writer.flush(); 
writer.close(); 
InputStream is=client.getInputStream(); 
bytesread=is.read(mybytearray,0,mybytearray.length); 

내가 follws로 내 코드를 변경하지만 작동하지 않습니다.

InputStream is=client.getInputStream(); 
BufferedReader bf=new BufferedReader(new InputStreamReader(is)); 
String value=bf.readLine(); 

답변

1

BufferedReader

BufferedReader d 
      = new BufferedReader(new InputStreamReader(is)); 

으로의 InputStream를 감싸고 readLine() 방법을 사용합니다.

텍스트 줄을 읽습니다. 한 줄은 줄 바꿈 ('\ n'), 캐리지 리턴 ('\ r') 또는 캐리지 리턴 중 임의의 하나로 끝나는 것으로 간주되며 바로 뒤에 줄 바꿈이옵니다. BufferedReader를 사용

InputStream is=client.getInputStream(); 
bytesread=is.read(mybytearray,0,mybytearray.length); 
// Create a new String out of the bytes read 
String data = new String(mybytearray, 0, bytesread, CharSet); 

또는

감싸고 InputStreamString 형식 (readLine() 사용) 라인으로 데이터 라인을 읽어

0

이보십시오. 버퍼 판독기 사용

+0

그것이 제공 : 아래와 같은 문자열로 변환 할 byte[] "mybytearray"를 사용하는 마지막 문 후

을 CharSet가 형태에 해결되어 있지 않은 에러. 무엇을 드릴까요? pls 제안 제공 –

+0

@ user3243259 : http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html을 참조하십시오. 지금은 "UTF-8"로 전달할 수 있습니다. –

0

가장 또는 아래의 코드를 시도 할 수 있습니다 : 내가 위의 코드를 줄 때

if(bytesread > 0) 
    String result = new String(mybytearray); 
관련 문제