2a9cfd0b

Читаем одну строку из созданного


      // Сбрасываем содержимое буфера вывода

      OutStream.flush();

      // Закрываем выходной поток

      OutStream.close();

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }



   

    // Выполняем попытку чтения из файла

    try

    {

      // Создаем входной буферизованный поток данных

      InStream = new DataInputStream(

        new BufferedInputStream(

          new FileInputStream("output.txt")));

      // Читаем одну строку из созданного входного потока

      // и отображаем ее на консоли

      System.out.println(InStream.readLine());

      // Закрываем входной поток

      InStream.close();

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

    // Ожидаем ввода с клавиатуры, а затем завершаем

    // работу приложения

    try

    {

      System.out.println(

        "Press <Enter> to terminate application...");

      System.in.read(bKbdInput);

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

  }

}



        new BufferedInputStream(

          new FileInputStream("output.txt")));

      // Создаем объект для разбора потока

      TokenizerOfStream tos = new TokenizerOfStream();

      // Выполняем разбор

      tos.TokenizeIt(InStream);

      // Закрываем входной поток

      InStream.close();

      System.out.println("Press <Enter> to terminate...");

      System.in.read(bKbdInput);

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

  }

}

// =========================================================

// Класс TokenizerOfStream

// Класс для разбора входного потока

// =========================================================

class TokenizerOfStream

{

  public void TokenizeIt(InputStream is)

  {

    // Создаем разборщик потока

    StreamTokenizer stok;

    // Временная строка

    String str;

    try

    {

      // Создаем разборщик потока

      stok = new StreamTokenizer(is);

      // Задаем режим исключения комментариев,

      // записанных в стиле С++ (два символа '/')

      stok.slashSlashComments(true);

      // Указываем , что символ '.' будет обычным символом

      stok.ordinaryChar('.');

      // Запускаем цикл разбора потока,

      // который будет завершен при достижении

      // конца потока

      while(stok.nextToken() != StreamTokenizer.TT_EOF)

      {

        // Определяем тип выделенного элемента

        switch(stok.ttype)

        {

          // Если это слово, записываем его во

          // временную строку

          case StreamTokenizer.TT_WORD:

          {

            str = new String("\nTT_WORD >" + stok.sval);

            break;

          }

          // Если это число, преобразуем его

          // в строку

          case StreamTokenizer.TT_NUMBER:

          {

            str = "\nTT_NUMBER >" +

              Double.toString(stok.nval);



      // введенному пути

      File fdir = new File(sDirPath);

      // Если указанный каталог не существует,

      // выводим сообщение и завершаем работу

      if(!fdir.exists())

      {     

        System.out.println("Directory not found: "

          + sDirPath);

      }

     

      // Если путь существует, определяем параметры

      // соответствующего файла или каталога

      else

      {

        // Проверяем, был указан файл или каталог

        if(!fdir.isDirectory())

          System.out.println("File " + sDirPath +

            " is not directory");

        // Если указан каталог, получаем его содержимое

        else

        {

          // Если маска не задана, вызываем метод list

          // без параметров

          if(sMask == null)

            dirlist = fdir.list();

         

          // Вызываем метод list, создавая фильтр

          else

            dirlist = fdir.list(new MaskFilter(sMask));

          // Сканируем полученный массив

          for (int i = 0; i < dirlist.length; i++)

          {

            // Для каждого объекта, обнаруженного в

            // каталоге, создаем объект класса File

            File f = new File(sDirPath + "\\" + dirlist[i]);

           

            // Имена файлов отображаем строчными буквами

            if(f.isFile())

              System.out.println(dirlist[i].toLowerCase());

           

            // Имена каталогов оставляем без изменения

            else

              System.out.println(dirlist[i]);

          }

        }

      }

      System.out.println("Press <Enter> to terminate...");

      System.in.read(bKbdInput);

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

  }

}

// =========================================================

// Класс MaskFilter

// Фильтр для просмотра каталога

// =========================================================



      // поток для записи принятого файла

      DataOutputStream os = new DataOutputStream(

        new BufferedOutputStream(

          new FileOutputStream("output.dat")));

      // Выполняем в цикле чтение файла, расположенного

      // по адресу u, копируя этот файл в выходной поток

      while(true)

      {

        int nReaded = is.read(buf);

      

        if(nReaded == -1)

          break;

        os.write(buf, 0, nReaded);

      }

      // Закрываем входной и выходной потоки

      is.close();

      os.close();

      System.out.println("File received");

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

    try

    {

      System.out.println("Press <Enter> to terminate...");

      System.in.read(bKbdInput);

    }

    catch(Exception ioe)

    {

      System.out.println(ioe.toString());

    }

  }

}


Содержание раздела