как скачать файл с http сервера - PullRequest
1 голос
/ 03 марта 2011

Моему приложению нужно загрузить файл (файл .ashx) с http-сервера. Я написал следующую функцию для этого. Но его выполнение занимает много времени, и когда я печатаю его, его размер превышает 30 000.Но его всего 28 кб.

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;
}

Когда я пытаюсь вернуть строку, отображается какое-то нежелательное значение.Как я могу скачать файл с сервера и записать его на наш телефон. У кого-нибудь есть идеи, пожалуйста, помогите.

1 Ответ

0 голосов
/ 05 марта 2011

Во-первых, ваш размер файла такой же, я думаю, 30 000 байт / 1024 = почти 28 КБ.

Во-вторых, вы не возвращаете строку, вы возвращаете байты. Так что, если вы ожидаете увидеть читаемую человеком строку из этих байтов, это выглядит как мусор.

Попробуйте использовать

StringBuffer buff = new StringBuffer();
BufferedReader in = new BufferedReader (new InputStreamReader(httpConnecton.getInputStream()));
 while ((str = in.readLine()) != null) {
        buff.append(str);
 }
 return buff.toString();
...