Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Язык программирования JAVA. Потоки ввода/вывода

Содержание

СодержаниеПоток.Байтовые и символьные потоки.Базовые классы.Блочное копирование.Класс File.Ввод/вывод на консоль.Чтение строк с консоли.Сериализация.Байтовый в символьный и наоборот.Перекодирование файла.
Язык программирования JAVAПотоки ввода/вывода СодержаниеПоток.Байтовые и символьные потоки.Базовые классы.Блочное копирование.Класс File.Ввод/вывод на консоль.Чтение строк с консоли.Сериализация.Байтовый ПотокПоток является абстракцией, которая или производит, или потребляет информацию. Все потоки ведут Байтовые и символьные потокиПотоки бывают для чтения(ввод) и записи(вывод).Два типа потоков – Базовые классы Байтовые потоки Классы - байтовые потоки Символьные потоки Классы - символьные потоки Класс ByteArrayInputStreamПоток, считывающий (записывающий) данные из массива байт. Класс ByteArrayOutputStreamПрименяется для записи в массив. Блочное копированиеПроцедура копированияvoid copy(InputStream is, OutputStream os) throws IOException {  byte[] Класс FileПозволяет осуществлять манипуляции с файлами и директориямиСоздание дескриптора по имени:	File(pathname) – Операции с файламиПроверка типа	isFile() – является ли файлом	isDirectory() – является ли директорией	isHidden() Листинг директорииЛистинг всех файлов	String[] list() – получить имена файлов	File[] listFiles() – получить Класс FileInputStreamПоток для чтения из файла по байтам.try { Класс FileOutputStreamПоток для записи в файл по байтам.String text = Классы BufferedInputStream и BufferedOutputStreamЧтение и запись данных происходит из буфера.Ускоряет процесс в Классы FileReader и FileWriter	Writer writer;    try { Байтовый поток в символьныйПри чтении возможно преобразование байтового потока в символьный, с указанием кодировкиКласс InputStreamReaderInputStreamReader(InputStream, encoding) Ввод/вывод на консольPrintWriter pw = new PrintWriter(System.out, true);pw.println( Чтение строк с консоли    BufferedReader br = new BufferedReader(new Символьный поток в байтовыйПри записи возможно преобразование символьного потока в байтовый, с указанием кодировкиКласс OutputStreamWriterOutputStreamWriter(OutputStream, encoding) Пример: перекодирование файла try {      Reader reader СериализацияСериализация – процесс преобразования объекта в последовательность байт.Сериализованный объект легко передать по Пример сериализации	class Person implements Serializable {      public Пример десериализации	try {      objectInputStream = new ObjectInputStream(new Вопросы?
Слайды презентации

Слайд 2 Содержание
Поток.
Байтовые и символьные потоки.
Базовые классы.
Блочное копирование.
Класс File.
Ввод/вывод на

СодержаниеПоток.Байтовые и символьные потоки.Базовые классы.Блочное копирование.Класс File.Ввод/вывод на консоль.Чтение строк с

консоль.
Чтение строк с консоли.
Сериализация.
Байтовый в символьный и наоборот.
Перекодирование файла.







Слайд 3 Поток
Поток является абстракцией, которая или производит, или потребляет

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

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

физические устройства, с которыми они связаны, могут сильно различаться.
Благодаря потокам ваша программа выполняет ввод/вывод, не понимая различий между клавиатурой и сетью.
Поток скрывает детали низкоуровневых процессов ввода/вывода.
В Java система ввода-вывода представлена в java.io.*






Слайд 4 Байтовые и символьные потоки
Потоки бывают для чтения(ввод) и

Байтовые и символьные потокиПотоки бывают для чтения(ввод) и записи(вывод).Два типа потоков

записи(вывод).
Два типа потоков – байтовый и символьный.





Чтение с

клавиатуры, чтение из файла и т.д.

Вывод на консоль, запись в файл и т.д.


Слайд 5 Базовые классы

Базовые классы

Слайд 6 Байтовые потоки

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

Слайд 7 Классы - байтовые потоки

Классы - байтовые потоки

Слайд 8 Символьные потоки

Символьные потоки

Слайд 9 Классы - символьные потоки

Классы - символьные потоки

Слайд 10 Класс ByteArrayInputStream
Поток, считывающий (записывающий) данные из массива байт.

Класс ByteArrayInputStreamПоток, считывающий (записывающий) данные из массива байт.

Слайд 11 Класс ByteArrayOutputStream
Применяется для записи в массив.

Класс ByteArrayOutputStreamПрименяется для записи в массив.

Слайд 12 Блочное копирование
Процедура копирования
void copy(InputStream is, OutputStream os) throws

Блочное копированиеПроцедура копированияvoid copy(InputStream is, OutputStream os) throws IOException { byte[]

IOException {
byte[] b = new byte[1024];

int c = 0;
while ((c = is.read(b)) >= 0) {
os.write(b, 0, c);
}
}

Слайд 13 Класс File
Позволяет осуществлять манипуляции с файлами и директориями
Создание

Класс FileПозволяет осуществлять манипуляции с файлами и директориямиСоздание дескриптора по имени:	File(pathname)

дескриптора по имени:
File(pathname) – абсолютный или относительный путь
Создание дескриптора

по имени и директории:
File(File dir, name) File(String dir, name)
Получение информации
getName() – получить имя
getPath() – получить имя и путь
getAbsolutePath() – получить абсолютный путь
getAbsoluteFile() – получить абсолютный дескриптор
Определение родителя
String getParent() – как строки
File getParetnFile() – как дескриптора
Платформозависимые разделители
separator / separtorChar – разделитель директорий
pathSeparator / pathSeparatorChar – разделитель в файлов и директорий в путях

Слайд 14 Операции с файлами
Проверка типа
isFile() – является ли файлом
isDirectory()

Операции с файламиПроверка типа	isFile() – является ли файлом	isDirectory() – является ли

– является ли директорией
isHidden() – является ли скрытым
Получение информации

о файле
exist() – проверка существования
length() – длина файла
lastModifier() – время последней модификации
Создание
mkdir() – создать одну директорию
mkdirs() – создать все директории
createNewFile() – создать пустой файл
Удаление
delete() – удалить немедленно
deleteOnExit() – удалить после завершения
Переименование / перенос
renameTo(file) – переименовать / перенисти в заданное место

Слайд 15 Листинг директории
Листинг всех файлов
String[] list() – получить имена

Листинг директорииЛистинг всех файлов	String[] list() – получить имена файлов	File[] listFiles() –

файлов
File[] listFiles() – получить дескрипторы файлов
Листинг по критерию
String[] list(FileNameFilter)

– получить имена файлов
File[] listFiles(FileFilter) – получить дескрипторы файлов

Слайд 16 Класс FileInputStream
Поток для чтения из файла по байтам.







try

Класс FileInputStreamПоток для чтения из файла по байтам.try {

{
FileInputStream fin =

new FileInputStream("/etc/hosts");
try {
int i = -1;
while ((i = fin.read()) != -1) {
System.out.print((char) i);
}
} finally {
fin.close();
}
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}

Слайд 17 Класс FileOutputStream
Поток для записи в файл по байтам.
String

Класс FileOutputStreamПоток для записи в файл по байтам.String text =

text = "Hello world!"; // строка для записи

try {
FileOutputStream fos = new FileOutputStream("notes.txt");
try {
// перевод строки в байты
byte[] buffer = text.getBytes();
fos.write(buffer, 0, buffer.length);
} finally {
fos.close();
}
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}

Слайд 18 Классы BufferedInputStream и BufferedOutputStream
Чтение и запись данных происходит

Классы BufferedInputStream и BufferedOutputStreamЧтение и запись данных происходит из буфера.Ускоряет процесс

из буфера.
Ускоряет процесс в несколько раз.
Запись в устройство вывода

произойдет, когда буфер заполнится.
метод flush() или close() - сброс и запись данных







try {BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(new File("/etc/hosts")));
try {
int c;
while ((c = bis.read()) != -1) {
System.out.print((char) c);
}
} finally { bis.close(); }
} catch (Exception e) {
System.out.println(e.getMessage());
}


Слайд 19 Классы FileReader и FileWriter
Writer writer;

try {
Reader reader

= new FileReader("notes.txt");
try {
writer = new FileWriter("output.txt");
int c = 0;
while ((c = reader.read()) >= 0) {
writer.write(Character.toUpperCase((char) c));
}
writer.close();
} finally {
reader.close();
}
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
}

Слайд 20 Байтовый поток в символьный
При чтении возможно преобразование байтового

Байтовый поток в символьныйПри чтении возможно преобразование байтового потока в символьный, с указанием кодировкиКласс InputStreamReaderInputStreamReader(InputStream, encoding)

потока в символьный, с указанием кодировки

Класс InputStreamReader
InputStreamReader(InputStream, encoding)


Слайд 22 Чтение строк с консоли
BufferedReader

Чтение строк с консоли  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

br = new BufferedReader(new InputStreamReader(System.in));
List

list = new ArrayList<>();
System.out.println("Введите строки текста.");
System.out.println("Введите 'stop' для завершения.");
String s = null;
while(true){
try {
s = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
if(s.equals("stop")) break;
list.add(s);
}
System.out.println("Вот ваши строки:");
for (String str :list) {
System.out.println(str);
}

Слайд 23 Символьный поток в байтовый
При записи возможно преобразование символьного

Символьный поток в байтовыйПри записи возможно преобразование символьного потока в байтовый, с указанием кодировкиКласс OutputStreamWriterOutputStreamWriter(OutputStream, encoding)

потока в байтовый, с указанием кодировки

Класс OutputStreamWriter
OutputStreamWriter(OutputStream, encoding)


Слайд 24 Пример: перекодирование файла
try {

Reader reader = new InputStreamReader(

new FileInputStream("input.txt"), "Cp1251");
Writer writer = new OutputStreamWriter(
new FileOutputStream("output.txt"), "Cp866");
int c = 0;
while ((c = reader.read()) >= 0) writer.write(c);
reader.close();
writer.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

Слайд 25 Сериализация
Сериализация – процесс преобразования объекта в последовательность байт.
Сериализованный

СериализацияСериализация – процесс преобразования объекта в последовательность байт.Сериализованный объект легко передать

объект легко передать по сети, сохранить в файл.
Чтобы объект

мог быть сериализован, он должен реализовывать интерфейс java.io.Serializable.
java.io.Serializable — маркер, нет ни одного метода.
Классы ObjectInputStream и ObjectOutputStream производят сериализацию и десериализацию объектов.
Свойства класса, помеченные модификатором transient, не сериализуются.









Слайд 26 Пример сериализации
class Person implements Serializable {

Пример сериализации	class Person implements Serializable {   public String name

public String name = null;

public int age = 0;
}
ObjectInputStream objectInputStream;
try {
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
new FileOutputStream("person.bin"));
try {
Person person = new Person();
person.name = "Jakob Jenkov";
person.age = 40;
objectOutputStream.writeObject(person);
objectOutputStream.close();
} finally {objectOutputStream.close(); }
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();}

Слайд 27 Пример десериализации
try {

Пример десериализации	try {   objectInputStream = new ObjectInputStream(new FileInputStream(

objectInputStream = new ObjectInputStream(new FileInputStream("person.bin"));

try {
Person personRead = (Person) objectInputStream.readObject();
System.out.println(personRead.name);
System.out.println(personRead.age);
} finally {
objectInputStream.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

  • Имя файла: yazyk-programmirovaniya-java-potoki-vvodavyvoda.pptx
  • Количество просмотров: 108
  • Количество скачиваний: 0