Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
#1

PrintWriter и OutputStream - Программирование Android

02.05.2016, 13:31. Просмотров 213. Ответов 2
Метки нет (Все метки)

Мне нужно передать на TCP сервер изображение и контакты телефона андроид. Изображение отлично передается таким кодом
Java
1
 outputStream.write(mybytearray1, 0, mybytearray1.length);
, где outputStream инициализированный объект OutputStream соответственно.
А контакты телефона читает из базы контактов смартфона и успешно передает такой код
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
39
Cursor c = getContentResolver().query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                    null, null, null);
            PrintWriter out = new PrintWriter(new BufferedWriter(
                    new OutputStreamWriter(socket.getOutputStream(), Charset.forName("UTF-8"))),
                    true);
            //ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream());
            //out.println(STX);
 
 
 
            if (c.moveToFirst()) {
                //while (c.moveToNext())
                for (int i = 0; i < c.getCount(); i++)
                {
                    
                    String contactName = c
                            .getString(c
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
 
                    Log.d("Func", contactName);
                    String phNumber = c
                            .getString(c
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                    Log.d("Func", phNumber);
                    
 
                    
                    
                            out.flush();
                    
                            out.println(STX);
                            out.println(contactName);
                            out.println(phNumber);
                            out.println(ETX);
                    c.moveToNext();
                
                }
            }
Вот у меня и вопрос как можно и контакты телефона и байты изображения передать при помощи только одного класса PrintWriter или OutputStream? Просто размер изображения можно определить(он равен размеру файла в котором изображение хранится), а вот размер списка контактов определить сложно и выделить заблаговременно в массиве память для него, так контактов заранее неизвестно сколько может быть у пользователя. Это станет лишь ясно после прочтения всех контактов в ArrayList, например(тогда размер этого ArrayList и будет равен размеру списка контактов пользователя). Но проблема в том что если все запихивать в ArrayList и отправлять на сервер через writeObject(), так как сам TCP сервер написан на Qt то там нет методов десериализации объектов Java. Вот и вопрос как тогда отправить на сервер изображение и контакты одним каким то буфером и при помощи одного класса?? Подскажите пожалуйста наиболее оптимальный вариант?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2016, 13:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос PrintWriter и OutputStream (Программирование Android):

OutputStream.write - Программирование Android
Добрый вечер Уважаемые форумчане! Скажите пожалуйста почему функция Send, а точнее передача через bluetooth выполняется дважды? Проверил...

Быстродействие InputStream и OutputStream - Программирование Android
Доброй ночи. Для работы с внешним устройством использую связь через WiFi TCP (сервер на ESP8266). При закольцовывании данных (соединяю...

Блокирует ли обращение к Socket InputStream и OutputStream программу? - Программирование Android
Помогите как они работают. Допустим: клиент - void fun(){ writeUTF(&quot;data_1&quot;);//шлем данные String otvet = &quot;&quot;; ...

PrintWriter - Java SE
Почему-то записывает текст в файл в одну строку. В консоль выводит нормально вместе с переходами на новую строку, а у файл все в одну...

PrintWriter - Java SE
Текст, напечатанный PrintWriter'ом появляется в текстовом файлы только после выполнения PrintWriter.close(); , а при подключении нового...

Потоки InputStream/OutputStream - Java SE
Привет. Помогите разобраться с стримами. Вся абстакция классов и работа их методов как бы понятна. Но не могу понять как самому ручками...

2
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.05.2016, 13:34 #2
Цитата Сообщение от yura91 Посмотреть сообщение
TCP сервер
что такое TCP сервер?
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
02.05.2016, 14:05  [ТС] #3
Ну программа которая предоставляет свои ресурсы TCP клиентам а к чему вы это спросили?

Добавлено через 45 секунд
Я просто спросил как удобнее одним классом отправить данные вот

Добавлено через 1 минуту
А у меня задействовано 2 outputStream и PrintWriter, а я хочу оптимальнее отправить все одним классом так как это сделать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 14:05
Привет! Вот еще темы с ответами:

PrintWriter.flush(); - Java SE
Использую PrintWriter pw = new PrintWriter(System.out, true); вывожу при помощи pw.write(); и приpw.flush(); В чем может...

Странности при закрытии OutputStream - Java Сети
На основе com.sun.net.httpsserver написана заглушка в целях тестирования некоего промежуточного сервера. Её задача - принять запрос и...

PrintWriter. Почему не работает?! - Java SE
import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; class MySeachingBush{ int b; int...

PrintWriter не пишет в файл - Java SE
мне просто надо записать в файл с этим классом, но почему то не пишет туда ни как PrintWriter printWriter = new...


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

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

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