Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
ASDFD12
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
1

Загрузка файла с сервера

13.12.2013, 22:21. Просмотров 2556. Ответов 4
Метки нет (Все метки)

Файл загружается но видимо неправильно. Так как этот mp3-файл не воспроизводится. Предполагаю что нада поменять User-agent, но какой ?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
URL myURL = new URL("https://translate.google.ru/translate_tts?ie=UTF-8&q="+b + "&tl=ru&total=1&idx=0&textlen=44&prev=input");
    URLConnection hpCon = myURL.openConnection(); \\ соединяемсь
    hpCon.setRequestProperty("User-Agent", "Mozilla/5.0"); \\настройка параметров 
    
    InputStream dataStream = hpCon.getInputStream(); \\ подсоединяю поток для чтения
    InputStreamReader isr = new InputStreamReader(dataStream, "UTF-8"); \\ я так понял буферезированый поток
 
        StringBuffer data = new StringBuffer(); \\ сюда записываю данные с потока
    int c;
    while ((c = isr.read()) != -1)
    {
        
           data.append((char) c);
    }
  
 
    resultString = new String (data.toString()); \\ конвертирую данные в строку => возможно здесь что-то не так
    
   \\ далее идет запись содержимого строки у файл на флешке
    
        File sdPath = Environment.getExternalStorageDirectory();
        // добавляем свой каталог к пути
        sdPath = new File(sdPath.getAbsolutePath() + "/" + DIR_SD);
        // создаем каталог
        sdPath.mkdirs();
        // формируем объект File, который содержит путь к файлу
        File sdFile = new File(sdPath, FILENAME_SD);
        try {
          // открываем поток для записи
          BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile));
          // пишем данные
          bw.write(resultString);
          // закрываем поток
          bw.close();
            } 
       catch (IOException e) {
          e.printStackTrace();
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 22:21
Ответы с готовыми решениями:

Загрузка данных с удалённого сервера
Здравствуйте! Подскажите пожалуйста, как лучше, правильно или предпочтительнее,...

Загрузка Xml с сервера и отображение данных в приложении
У меня такой вопрос: как можно загрузить xml файл в приложение и отобразить его...

Загрузка файла по URL
Добрый день. Уже несколько дней бьюсь над одной проблемой - как реализовать...

Загрузка 3d объекта из файла
Вечер добрый, форумчане. Есть необходимость загрузить 3d объект, созданный в...

Загрузка файла из сети интернет
Добрый день. Я, после большого перерыва, вернулся к своему проекту. Нашел...

4
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
13.12.2013, 23:50 2
МОжет поможет)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    try {
        URL url = new URL("URL_MP3"]);
        URLConnection conexion = url.openConnection();
        conexion.connect();
 
        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream("ПУТЬ_ДО_МЕСТА_НА_ФЛЕШКЕ(Environment.getExternalStorageDirectoyr())/nameFile.mp3");
 
        byte data[] = new byte[1024];
 
        while ((count = input.read(data)) != -1) {
            output.write(data, 0, count);
        }
 
        output.flush();
        output.close();
        input.close();
    } catch (Exception e) {}
0
ASDFD12
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
14.12.2013, 11:12  [ТС] 3
Цитата Сообщение от GukZiLLA Посмотреть сообщение
МОжет поможет)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    try {
        URL url = new URL("URL_MP3"]);
        URLConnection conexion = url.openConnection();
        conexion.connect();
 
        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream("ПУТЬ_ДО_МЕСТА_НА_ФЛЕШКЕ(Environment.getExternalStorageDirectoyr())/nameFile.mp3");
 
        byte data[] = new byte[1024];
 
        while ((count = input.read(data)) != -1) {
            output.write(data, 0, count);
        }
 
        output.flush();
        output.close();
        input.close();
    } catch (Exception e) {}
Попробовал. Но у меня нет класа BufferedInputStream. Получил поток через метод getInputStream. Все остальное оставил так как у вашем примере. Проблема осталась. Как в моём так и вашем примере запись идёт только неправильно. Записываются лишние данные. Создавал java приложение на компе, там поначалу тоже происходила загрузка но неправильная. Все решилось когда добавил setRequestProperty("User-Agent", "Translator"). Использование других агентов давало неправильную загрузку. Думаю, что и в приложении на андроид все зависит от агента, но какой Нада выбрать?
0
GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
14.12.2013, 13:35 4
Цитата Сообщение от ASDFD12 Посмотреть сообщение
Но у меня нет класа BufferedInputStream.
Как так нет? )
Он был добавлен еще в api level 1 http://developer.android.com/referen...putStream.html
Переустановите ide)
1
ASDFD12
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 544
14.12.2013, 14:11  [ТС] 5
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Как так нет? )
Он был добавлен еще в api level 1 http://developer.android.com/referen...putStream.html
Переустановите ide)
Все СУПЕР. Спасибо. Нашел этот BufferedInputStream, подключил и все заработало. Странно, что через getInputStream не работало. Тема закрыта.
0
14.12.2013, 14:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 14:11

Загрузка файла в файловую систему эмклятора
Как загрузить файл в систему? жму на stdcard, потом push fili onto device,...

Загрузка файла из сети, и его выполнение
Здравсвуйте, пытаюсь загрузить файл из сети (это файл приложения *.apk), и...

Загрузка базы данных из файла, в классе SQLite БД
Здравствуйте. Есть метод loadBDOfWordsToList(), который из текстового файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru