我的应用程序需要从http服务器下载文件(.ashx文件)。我为此编写了以下功能。但是执行它需要花费大量时间,而当我打印它的大小超过30,000时。但它只有28 kb。
public byte[] downloadFile(String url){
StreamConnection streamConnection=null;
InputStream inputStream=null;
InputStream ips;
byte[] plyListFiles=null;
try {
HttpConnection httpConnection=(HttpConnection)Connector.open(url,Connector.READ_WRITE);
httpConnection.setRequestMethod(HttpConnection.GET);
int httpStatus=httpConnection.getResponseCode();
if(httpStatus==HttpConnection.HTTP_OK){
inputStream = httpConnection.openInputStream();
ips=inputStream;
plyListFiles= IOUtilities.streamToBytes(ips);
}
} catch (IOException e) {
System.out.println(e);
}
return plyListFiles;
}
当我尝试返回字符串时,会显示一些垃圾值。 如何从服务器下载文件并将其写入我们的手机。任何人都有想法请帮忙。
答案 0 :(得分:0)
首先,你的文件大小相同我想30,000byte / 1024 =几乎28kb。
其次,您没有返回字符串,而是返回字节。因此,如果您希望从这些字节中看到人类可读的字符串,那么它似乎就像垃圾一样。
尝试使用
StringBuffer buff = new StringBuffer();
BufferedReader in = new BufferedReader (new InputStreamReader(httpConnecton.getInputStream()));
while ((str = in.readLine()) != null) {
buff.append(str);
}
return buff.toString();