我正在尝试使用套接字编程创建一个android客户端和java服务器应用程序。我需要从java服务器检索文件发送,但我不想将该内容写入客户端的另一个文件。相反,我想创建一个列表框,其中包含接收文件中的内容。我可以找到用于在文件中写入这些内容的代码,但我不知道如何以字符串形式访问内容。
这是我试过的代码:
Android客户端
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();
答案 0 :(得分:1)
将您的输入流包装到BufferedReader
BufferedReader d
= new BufferedReader(new InputStreamReader(is));
并使用readLine()
方法。
读取一行文字。一条线被认为是任何一条线终止的 换行符('\ n'),回车符('\ r')或回车符 然后立即换行。
答案 1 :(得分:0)
试试这个:
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);
OR
使用InputStream
换取BufferedReader
,并以readLine()
格式逐行阅读数据(使用String
)。
答案 2 :(得分:0)
最好使用缓冲读卡器,或者您可以尝试以下代码:
在最后一个语句之后使用byte[] "mybytearray"
转换为字符串,如下所示:
if(bytesread > 0)
String result = new String(mybytearray);