Разделы презентаций


Лекции по Java SE Колесников Сергей, инженер-разработчик NetCracker

Содержание

План лекцииJava IOЧто это такоеРабота с потоками ввода\выводаСимвольные и байтовые потокиУпаковка потоковПредопределенные потокиJava NIOРабота с файловой системойjava.io.Filejava.nio.file.PathРазбор примеров в IDE

Слайды и текст этой презентации

Слайд 1Лекции по Java SE Колесников Сергей, инженер-разработчик NetCracker
Лекция 7.
Java I/O.

Лекции по Java SE Колесников Сергей, инженер-разработчик NetCrackerЛекция 7.Java I/O.

Слайд 2План лекции
Java IO
Что это такое
Работа с потоками ввода\вывода
Символьные и байтовые

потоки
Упаковка потоков
Предопределенные потоки
Java NIO
Работа с файловой системой
java.io.File
java.nio.file.Path

Разбор примеров в IDE

План лекцииJava IOЧто это такоеРабота с потоками ввода\выводаСимвольные и байтовые потокиУпаковка потоковПредопределенные потокиJava NIOРабота с файловой системойjava.io.Filejava.nio.file.PathРазбор

Слайд 31. Обмен данными
Разнообразие задач
Сетевые приложения
Обработка ввода с клавиатуры
Запись и считывание

данных из файлов
И еще множество других

Выделение системы ввода/вывода
Широкий спектр источников

и получателей
Различные форматы передачи данных
Ввод/вывод не должен зависеть от платформы
1. Обмен даннымиРазнообразие задачСетевые приложенияОбработка ввода с клавиатурыЗапись и считывание данных из файловИ еще множество другихВыделение системы

Слайд 42. Потоки данных
Основа – поток. Поток – абстракция, производящая или

потребляющая информацию

Java I/O System связывает поток с физическим устройством

Потоки делятся

на входные и выходные – Input* и Output*

Потоки бывают байтовые и символьные
Байтовые потоки для данных в двоичном коде
Символьные потоки для символов в Unicode
2. Потоки данныхОснова – поток. Поток – абстракция, производящая или потребляющая информациюJava I/O System связывает поток с

Слайд 53. Иерархия потоков и пример
try {
FileInputStream fis =

new FileInputStream("file.bin");
while (fis.available()>0)
System.out.println(fis.read());
} catch

(FileNotFoundException e) {
System.out.println("File not found");
} catch (IOException e) {
System.out.println("IO Exception");
}

Слайд 64. Байтовые потоки
Базовые классы: java.io.InputStream и java.io.OutputStream
Наиболее важные методы: int

read(), int read(byte[]) и void write(byte[])

*Аналогично для OutputStream

4. Байтовые потокиБазовые классы: java.io.InputStream и java.io.OutputStreamНаиболее важные методы: int read(), int read(byte[]) и void write(byte[])*Аналогично для

Слайд 75. Символьные потоки
Базовые классы: java.io.Reader и java.io.Writer
Наиболее важные методы: int

read(char[]) и void write(char[])

*Аналогично для Writer

5. Символьные потокиБазовые классы: java.io.Reader и java.io.WriterНаиболее важные методы: int read(char[]) и void write(char[])*Аналогично для Writer

Слайд 86. Упаковка потоков (wrapping)
Позволяет конвертировать байтовый поток в символьный



Позволяет

изменить функциональность работы с потоком
InputStream inStream = System.in;
InputStreamReader inReader =

new InputStreamReader(inStream);

FileReader fileReader = new FileReader(“file.txt”);
BufferedReader bufReader = new BufferedReader(fileReader);
String line = bufReader.readLine();//читает до разделителя строк ('\r' или '\n')

6. Упаковка потоков (wrapping) Позволяет конвертировать байтовый поток в символьныйПозволяет изменить функциональность работы с потокомInputStream inStream =

Слайд 9 7. Предопределенные потоки
Встроены в java.lang.System
Байтовый поток ввода System.in
Байтовый

поток вывода System.out
Байтовый поток вывода сообщений об ошибках System.err
Класс java.io.Console
Доступ

через System
Только для Java 6

public class ConsoleTest2 {
public static void main(String[] args) throws IOException {
Console con = System.console(); String login = con.readLine("login: "); char[] password = con.readPassword("password: "); con.printf("Hello %s!", login); }
}

7. Предопределенные потоки Встроены в java.lang.SystemБайтовый поток ввода System.inБайтовый поток вывода System.outБайтовый поток вывода сообщений об

Слайд 108. Java.nio
Java 1.4 and higher!

Лучше производительность

Buffers + Channels

Неблокирующий ввод\вывод

Selectors

8. Java.nioJava 1.4 and higher!Лучше производительностьBuffers + ChannelsНеблокирующий ввод\выводSelectors

Слайд 119. Java.nio пример
Чтение и запись

FileInputStream fin = new FileInputStream("readandshow.txt");
FileChannel fc

= fin.getChannel();

ByteBuffer buffer = ByteBuffer.allocate(1024);
fc.read(buffer);


FileOutputStream fout = new FileOutputStream("writesomebytes.txt");
FileChannel fc

= fout.getChannel();

ByteBuffer buffer = ByteBuffer.allocate(1024);

for (int i=0; i buffer.put( message[i] );
}
buffer.flip();

fc.write( buffer );

Слайд 1210. Java.nio блокировка файлов
Пример блокировки





Блокировка части файла
FileOutputStream fos = new

FileOutputStream("file.txt");
FileLock fl = fos.getChannel().tryLock();

if (fl != null) {
System.out.println("File is

locked");
fl.release();
System.out.println("Lock is released");
}

fos.close

tryLock(long position, lond size, boolean shared);

10. Java.nio блокировка файловПример блокировкиБлокировка части файлаFileOutputStream fos = new FileOutputStream(

Слайд 1311. Работа с файловой системой
За работу с файловой системой

отвечает java.io.File
File file = new File("file.txt") – создание инструмента для

работы с файлом и директорией
Инкапсулирует платформенно-независимые методы работы с файлами и директориями:
создание, переименование, удаление
проверка типа пути: файл или каталог
проверка атрибутов файлов и каталогов
проверка существования файлов и каталогов
Определяет доступ лишь к метаданным файловой системы (для чтения и записи используем потоки!)
11. Работа с файловой системой За работу с файловой системой отвечает java.io.FileFile file = new File(

Слайд 1412. Java.nio.file.Path
Еще один способ работы с файловой системой.
Java 7 and

higher!

Throws Exceptions



Атрибуты специфичные для ОС
Path path = Paths.get("index.html");
if (!file.delete()){

//What happens ?
}

try {
path.delete();
} catch (IOException e) {
//
}

DosFileAttributeView dosView = path.getFileAttributeView(DosFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
if (dosView != null)
dosFileAttributes dos = dosView.readAttributes();

12. Java.nio.file.PathЕще один способ работы с файловой системой.Java 7 and higher!Throws ExceptionsАтрибуты специфичные для ОС Path path

Слайд 1513. Java.nio.file.Path (продолжение)
Checking directories for modifications

WatchService watcher = path.getFileSystem().newWatchService();

path.register(watcher,

StandardWatchEventKind.ENTRY_CREATE,
StandardWatchEventKind.ENTRY_MODIFY,
StandardWatchEventKind.ENTRY_DELETE);

while

(true) {
WatchKey watchKey = watcher.take();

for (WatchEvent event : watchKey.pollEvents()) {
System.out.println(event.kind() + " : " + event.context());
}

watchKey.reset();
}
13. Java.nio.file.Path (продолжение)Checking directories for modificationsWatchService watcher = path.getFileSystem().newWatchService(); path.register(watcher,   StandardWatchEventKind.ENTRY_CREATE,   StandardWatchEventKind.ENTRY_MODIFY,

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика