- •Основы Java
- •Система ввода-вывода Java
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java.
- •Система ввода-вывода Java. Буферизация.
- •Система ввода-вывода Java. Буферизация.
- •Система ввода-вывода Java. Байтовые потоки в работе с файлами. Лекция 3
- •Система ввода-вывода Java. Байтовые потоки в работе с файлами. Лекция 3
- •Система ввода-вывода Java. Символьные потоки.
- •Система ввода-вывода Java. Символьные потоки.
- •Система ввода-вывода Java. Символьные потоки. Лекция 3 Пример. Ввод нескольких строк с консоли
- •Система ввода-вывода Java. Символьные потоки.
- •Система ввода-вывода Java. Класс Scanner.
- •Система ввода-вывода Java. Класс Scanner.
- •Коллекции в Java.
- •Коллекции в Java. Иерархия классов Collection
- •Коллекции в Java. Иерархия классов Collection
- •Коллекции в Java. Интерфейс List и классы ArrayList и LinkedList
- •Коллекции в Java. Интерфейс List и классы ArrayList и LinkedList
- •Коллекции в Java. Интерфейс List и классы ArrayList и LinkedList
- •Коллекции в Java. Интерфейс List и классы ArrayList и LinkedList
- •Коллекции в Java. Методы ArrayList
- •Коллекции в Java. Методы ArrayList
- •Коллекции в Java. Методы LinkedList
- •Коллекции в Java. Интерфейс Map
- •Коллекции в Java. Рабочие классы интерфейса Map
- •Коллекции в Java. Интерфейс Map
- •Коллекции в Java. Методы класса HashMap
- •Коллекции в Java. Методы работы с элементами Map
- •Коллекции в Java. Методы работы с элементами Map
- •Коллекции в Java. Методы работы с элементами Map
Система ввода-вывода Java. |
Лекция 3 |
Пример работы с потоками объектов
Назначение — запись и чтение классов в поток, например в файл. Для этого такие классы должны быть помечены интерфейсом-маркером Seriazable
Класс «персоны»
package Test;
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name; public int age; public double height;
public boolean married;
public Person(String n, int a, double h, boolean m)
{
this.name |
= n; |
this.height |
= h; |
this.age |
= a; |
this.married = m;
}
public String getName() { return this.name;
}
}
Класс коллекции (списка) «персон»
package Test;
import java.io.Serializable; import java.util.ArrayList;
public class Persons implements Serializable {
private static final long serialVersionUID = 2L;
private ArrayList<Person> persons;
public Persons(ArrayList<Person> persons) { this.persons = persons;
}
public ArrayList<Person> getAll() { return this.persons;
}
}
Система ввода-вывода Java. |
Лекция 3 |
Пример работы с потоками объектов
try {
//Записываем студента
FileOutputStream fos = new FileOutputStream("C:/Users/Aam/eclipse-workspace/Test/human.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos);
Person person = new Person("Студент1",20,175,false); oos.writeObject (person);
//Читаем студента
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("C:/Users/Aam/eclipse-workspace/Test/human.txt"));
Person inperson = (Person) ois.readObject();
System.out.printf("Имя: %s \t Возраст: %d \n", inperson.getName(), inperson.age); //Имя: Студент1
Возраст: 20
//Записываем студентов ArrayList<Person> p = new ArrayList(); p.add(person);
person = new Person("Студент2",22,175,false); p.add(person);
Persons ps = new Persons(p);
fos = new FileOutputStream("C:/Users/Aam/eclipse-workspace/Test/persons.txt"); oos = new ObjectOutputStream(fos);
oos.writeObject (ps);
//Читаем студентов
ois = new ObjectInputStream(new FileInputStream("C:/Users/Aam/eclipse-workspace/Test/persons.txt")); Persons inpersons = (Persons) ois.readObject();
p = inpersons.getAll();
p.forEach((x)->System.out.printf("Имя: %s \n", x.getName())); //Имя: Студент1 Имя: Студент2
}
catch(Exception e){
}System.out.println(e.getMessage());Содержимое файла persons.txt
Система ввода-вывода Java. |
Лекция 3 |
System.in, System.out, System.err
Для работы с вводом и выводом данных в Java используют предопределенные
статические переменные in, out, err класса System из автовключаемого в каждую программу пакета java.lang. Эти переменные являются ссылками на потоки.
Некоторые методы классов, наследников InputStream и OutputStream
Система ввода-вывода Java. Буферизация. |
Лекция 3 |
Система ввода-вывода Java. Буферизация. |
Лекция 3 |
Подчинение выходного потока буферизации приводит к блокировке вывода на консоль символов с помощью метода write, однако метод println выведет данные т.е. метод
println не является буферезированным, а write – является.
Кроме того, положение вызова метода println приводит к выводу содержимого буфера потока System.out, «заблокированного» буферизацией через переменную bos.
Размер буфера по умолчанию - 8 кб
Система ввода-вывода Java. Байтовые потоки в работе с файлами. Лекция 3
Байтовые потоки часто используют для работы с файлами, особенно если это «посимвольная работа», например, перекодировка, а также какие-то низкоуровневые протоколы обмена данными.
Для чтения (ввода) данных из файла используется метод read() класса FileInputStream
Форма записи создания объекта файлового потока чтения файла:
FileInputStream(String “FileName”) throws FileNotFoundException
Для записи (вывода) данных в файл используется метод write(int bytteval) класса FileOutputStream
Форма запси создания объекта файлового потока чтения файла:
FileOutputStream(String “FileName”) throws FileNotFoundException
FileOutputStream(String “FileName”, boolean append) throws FileNotFoundException
Система ввода-вывода Java. Байтовые потоки в работе с файлами. Лекция 3
Система ввода-вывода Java. Символьные потоки. |
Лекция 3 |
Классы для работы с символьными потоками
Система ввода-вывода Java. Символьные потоки. |
Лекция 3 |
Некоторые методы классов, наследников Reader и Writer
Система ввода-вывода Java. Символьные потоки. Лекция 3 Пример. Ввод нескольких строк с консоли с помощью BufferedReader
Пример. Ввод символов с помощью BufferedReader