В/в данных в Java поток ориентирован. Абстракцию, которая производит или потребляет информацию.

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Ввод/вывод данных

В/в данных в Java поток ориентирован. Под потоком понимают абстракцию, которая производит или потребляет информацию.

Классы и интерфейсы для организации в/в сосредоточены в пакете Java.10.

В первоначальных версиях использовались только низкоуровневые байтовые потоки, начиная с Java 1.1 были добавлены и символьные потоки. Итак, поток можно рассматривать как условный канал по которому отсылаются и получаются данные (безотносительно к конкретному устройству, которое стоит за конкретным потоком).

В стороне от данной концепции стоит класс File (аналог соответствующего класса в C++), часто используемый как промежуточное звено потока, класс FileDescription и некоторые другие классы, связанные с обработкой файлов.

Ввод-вывод информации в Java

Базируется на 4 абстрактных классах InputStream, OutputStream для байтовых потоков и Reader Writer – для символьных потоков.

Байтовые потоки

- могут использоваться с любым типом объектов, включая данные в двоичном коде

FileInputStream используется для создания входного потока из файла (чтения) байтов данных из файла, например, на МД.

FileOutputStream -  для приемки данных из потока и организации записи байт в файл.

Пример: простейшей программы: import java.io.*;

Class CopyFile

{public static void main (string [ ] args)

{ try  {

File infile = new   File (.........-file.dat);

File outfile = new File (outfile.dat);

FileInputStream    inStream= new file

FileOutputStream  outStream =

New   FileOutputStream=

New FileOutputStream (outfile)

int C ;

while ((c=insteam.read (  ))!= -1)

{outStream.write (c)}

intStream.close (  );

outStream.close

catch (FileNotFoundExpeption ex) {  } }}

Можно создать файловые потоки и не используя промежуточный класс  File

FileInptStream inSream=new FileOutputstream («outfile.........?)

FileOutputSream = new FileOutputStream (outfile........?)

Для организации консольного ввода организуется чтение символа из класса BufferedReader, поддерживающего буферизированный входной поток.

Для этого используется класс System, в котором предопределены 3 поточные переменные.

In,out  и err

Объект System.in используется как стандартный ввод (с клавиатуры)

System.out – объект потока стандартного вывода. System.err. Стандартный поток ошибок, связанный с консолью.

Чтобы получить символьный поток, связанный с консолью можно использовать класс BufferedReader, поддерживающий буферизированный входной поток.

Пример кода для чтения строк, вводимых с клавиатуры.

Import java.io.* 1

Class Readlines

{public static void main (string args [  ]

throws  IOException

{BufferedReader (new InputStreamReader (System.in)

// где InputStreamReader – подкласс

// абстрактного класса Reader, который преобразовывает байты в символы.

//br – объект класса BufferReader, связанный с клавиатурой через system.in

В данном случае вызывается конструктор InputStreamReader (InputStream inputStream), где в части параметра используется sustem.in – объект типа InputStream, ассоциированный с консолью.

String str

System.ont.pritln («введите строки текста или stop - для завершения»)

Clo

{str = br.readhine (  );

// чтение строки

// pw.println (str); либо system.out.println (str) ; }

while (! Str.eals («stop»)) }}

где PrintWriter – поток символьного вывода, имеющий несколько конструкторов. Здесь используется

PrintWriter (OutputSream outputStream boolean flushOnNewLine)

Если flushOnNewLine – true

Сбрасывается в буфер вывода автоматически. Класс поддерживает методы print (  ) и print (  ) для всех типов. Для консольного вывода необходимо создать объект system.out  для выходного потока (смотри код).

Коллекции

- содержится в пакете Java.util

Коллекции стандартизируют способ обработки групп объектов.

Цель р—коллекций – реализация динамических массивов, связанных  списков деревьев, взаимодействие между различными типами коллекций, расширение (адаптация) коллекций для решаемых задач, т.е обработки групп объектов.

В структуре коллекций определено несколько интерфейсов

Интерфейс collection – верхний уровень иерархии для работы с группами объектов (в нем объявлены методы, которые исследуются всеми коллекциями).

List -  работа с последовательностями (списками объектов)

Set – для работы с наборами, содержащими уникальные элементы

SortedSet – работа с сортированными наборами.

Методы Collection

Loolean add (Object obj)

Добавляет объект к вызывающей коллекции try- добавлен

False  - если obj..........является элем.

..........addAll (Collection c)

добавл. Все элементы колл. С к существующим

void clear (  ) -  удаляет все элементы

Boolean remove (object obj)  - удаляет один экземпляр из коллекции

Int size (  ) ; возвращает число элементов, содержащихся в вызыв. коллекции….

Интрефейсыт Comparator – определяет как сравниваются 2 объекта, Iterator  ListIterator работают с отдельными элементами в коллекции.

Пример использования класса ArryList, расширяющего класс Abstrctlist и реализующего интерфейс List.

В Java массивы имеют фиксированную длину.  И после создания не могут изменяться. Для динамической организации массивов используется коллекция Arraylist, позволяющая увеличивать и уменьшать размерность массива.

Array List

Import java.util*

Import java.io.*

Class ArrayListDemo{

Public static void main (String arga [ ])

{ArrayList al=new ArrayList (  );

System.out.println («Начальный размер массива»)

al: «+size ( ) )

al.add («СТ»)

al.add  («А»)

al.add («DЛД»)

al.add («F»)

al.add («Е»)

al.add (1, «К»)

System.out.println («Содержимое al: «+al»)

System.out.println («Размер а1 после добавлений : «+al.size ( )) ;

al. Remove («FЛ»)

al.remove (1)

al.romove («Е»)

System.out.println («Cодрежимое al: «+al) 

PrintWriter pw=new PrintWriter pw=new (System.out, true)

Pw.println («Содержимое al : «+ al) ; }}

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.