Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать что InputStream закрыт 
:(
    Опции темы
barin_Student
Дата 29.4.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 488
Регистрация: 10.8.2007
Где: Казахстан , Алмат ы

Репутация: 1
Всего: 2



Собственно вот пример:
Код

 synchronized public void read(int params)
    {
        boolean timeToQuit = false;
        boolean CMGL = false;
        boolean CMGLTel = false;
        boolean Delete = false;
        String[] nomer=new String[30]; 
        try
        {
            String telefone=""; 
            int numberAmount=0;
            BufferedReader BR = new BufferedReader(new InputStream(port.getInputStream()));
            //this.wait();
            //BR.
            //System.out.println(BR.ready());
            String str="";
            boolean closed = false;
            int i = 0;
           while(timeToQuit==false)
            {
                if(BR.ready()==false)
                  {
                     int timer = 1;
                     while(BR.ready()==false)
                     {
                        if(timer ==10)
                        {
                            history.Write("Waiting, stream not ready","GSMTerminal");
                        }
                        this.wait(100);
                        if((BR.ready())&(timer>=10))
                        {
                            timer = 1;
                            history.Write("Stream ready=true, GSMTerminal works.","GSMTerminal");
                        }
                        if(timer==30)
                        {
                            history.Write("Stream closed, try to replay command ","GSMTerminal");
                            timeToQuit = true;
                            if(closed==false)
                            {
                                if(port.getInputStream().markSupported())
                                {
                                    port.getInputStream().close();
                                }
                                BR.close();
                                closed = true;
                            }
                            break;
                        }
                        timer++;
                    }
                 }
                  if(timeToQuit!=true)
                  {
                    str = BR.readLine();
                    history.Write(str,"GSMTerminal");
                  }
                 this.wait(50);
                 if(str.equals("RING"))
                 {
                     BR.close();
                     this.write("at+chld=1",1);
                     this.wait(200);
                   
                }
                
                boolean exit = this.dataErrors(str);
                if(exit)
                {
                    history.Write("Have IgnoreError ["+str+"]","GSMTerminal");
                    timeToQuit = true;
                    break;
                }


Вот такой подход не работает... Может кто знает почему , 

Это сообщение отредактировал(а) barin_Student - 29.4.2008, 12:50


--------------------
Нехорошо блин!!!
PM MAIL   Вверх
barin_Student
Дата 29.4.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 488
Регистрация: 10.8.2007
Где: Казахстан , Алмат ы

Репутация: 1
Всего: 2



Скорее не работает открытие заного InputStream... не знаю почему..


--------------------
Нехорошо блин!!!
PM MAIL   Вверх
AlexeyVorotnikov
Дата 29.4.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 10
Всего: 18



Заново открыть закрытый InputStream? Это невозможно.


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Maksym
Дата 29.4.2008, 17:53 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 14
Всего: 62



Цитата

public abstract void close() throws IOException
Close the stream. Once a stream has been closed, further read(), ready(), mark(), or reset() invocations will throw an IOException. Closing a previously-closed stream, however, has no effect.

PM MAIL   Вверх
barin_Student
Дата 30.4.2008, 05:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 488
Регистрация: 10.8.2007
Где: Казахстан , Алмат ы

Репутация: 1
Всего: 2



Тогда какие действия нужно выполнить , если скажем minicom перехватил InputStream com порта, скажем вот он перехватил , потом я вышел из minicom, и InputStream мне до сих пор не доступен... smile 


--------------------
Нехорошо блин!!!
PM MAIL   Вверх
barin_Student
Дата 30.4.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 488
Регистрация: 10.8.2007
Где: Казахстан , Алмат ы

Репутация: 1
Всего: 2



А если еще правильней выразицца , скажем вы получаете данные из Ком порта, открывается миником(перехватывает ваш InputStream), BufferedReader.ready() = false, миником закрывается , вы BR.reset() , а толку как с козла))).. Кто сталкивался и кто знает как это решить.. помогите пожалуйста... smile 


--------------------
Нехорошо блин!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.