Работа с файлами (ввод и вывод)

Содержание

Слайд 2

Класс Scanner

Scanner – класс, который читает форматный ввод и преобразует его в

Класс Scanner Scanner – класс, который читает форматный ввод и преобразует его
бинарную форму.
Scanner позволяет читать данные с клавиатуры, из файла на диске, из строки.

Слайд 3

Класс Scanner. Чтение с клавиатуры

Общий вид:

Scanner in1 = new Scanner(System.in);
Scanner in2 =

Класс Scanner. Чтение с клавиатуры Общий вид: Scanner in1 = new Scanner(System.in);
new Scanner(System.in, “cp1251”);

Слайд 4

Класс Scanner. Чтение из строки

Общий вид:

Scanner in =
new Scanner("10 99,88

Класс Scanner. Чтение из строки Общий вид: Scanner in = new Scanner("10
сканирование это просто");
int a = in.nextInt(); // 10
double b = in.nextDouble(); // 99.88
String s = in.next(); // "сканирование"

Слайд 5

Класс Scanner. Чтение из файла

Общий вид:

File file = new File (“in.txt”);
Scanner in1

Класс Scanner. Чтение из файла Общий вид: File file = new File
= new Scanner(file);
Scanner in2 = new Scanner(file, “cp1251”);

Внимание! Для того, чтобы работать с классом File, нужно подключить пакет java.io с помощью команды

import java.io.*;

Внимание! В методе main нужно указать исключение ввода-вывода, которое может генерироваться этим методом

public static void main(String[] args)
throws IOException {

Слайд 6

Основы сканирования

Scanner читает лексемы из некоторого источника (с клавиатуры, из строки, из

Основы сканирования Scanner читает лексемы из некоторого источника (с клавиатуры, из строки,
файла), который указан при создании объекта Scanner.
Лексема – порция ввода, отделенная набором разделителей, которыми по умолчанию являются пробелы.

Слайд 7

Процедура сканирования

Определите, доступен ли специфический тип ввода вызовом одного из методов класса

Процедура сканирования Определите, доступен ли специфический тип ввода вызовом одного из методов
Scanner hasNextX(), где X – нужный тип данных.
Если ввод доступен, читайте его одним из методов класса Scanner nextX().
Повторяйте процесс до завершения ввода.

Слайд 8

Пример. Чтение целых чисел с клавиатуры

Scanner in = new Scanner (System.in);
int

Пример. Чтение целых чисел с клавиатуры Scanner in = new Scanner (System.in);
i;
while(in.hasNextInt()) {
i = in.nextInt();
// ...
}

Цикл while остановится, как только следующая лексема окажется не целым числом.

Слайд 9

Некоторые методы hasNext – 1

Некоторые методы hasNext – 1

Слайд 10

Некоторые методы hasNext – 2

Некоторые методы hasNext – 2

Слайд 11

Некоторые методы next – 1

Некоторые методы next – 1

Слайд 12

Некоторые методы next – 2

Некоторые методы next – 2

Слайд 13

Пример. Чтение с клавиатуры

Scanner in = new Scanner (System.in);
int count = 0;

Пример. Чтение с клавиатуры Scanner in = new Scanner (System.in); int count
double sum = 0;
while (in.hasNext()) {
if (in.hasNextDouble()) {
sum += in.nextDouble();
count++; }
else
break;
}
System.out.printf(“Среднее = %f", sum / count);

Слайд 14

Пример. Чтение из файла – 1

Рассмотрим ту же самую задачу, но с

Пример. Чтение из файла – 1 Рассмотрим ту же самую задачу, но
чтением данных из файла. Пусть имеется файл in.txt, который находится в папке проекта.
in.txt

2 3,4 5 6 7,4 9,1 10,5

Слайд 15

Пример. Чтение из файла – 2

import java.util.*;
import java.io.*;
public class Main {
public static

Пример. Чтение из файла – 2 import java.util.*; import java.io.*; public class
void main(String[] args)
throws IOException {
File file = new File(“in.txt");
Scanner in = new Scanner (file, “cp1251”);
int count = 0;
double sum = 0;

Подгружаем пакет для работы с классом File

Метод main может генерировать исключения ввода-вывода

Обращение к файлу in.txt

Слайд 16

Пример. Чтение из файла – 3

while (in.hasNext()) {
if (in.hasNextDouble()) {
sum

Пример. Чтение из файла – 3 while (in.hasNext()) { if (in.hasNextDouble()) {
+= in.nextDouble();
count++; }
else
break;
}
System.out.printf(“Среднее = %f", sum / count);
}}

Дальнейший код повторяет пример с чтением с клавиатуры

Слайд 17

Класс PrintWriter

PrintWriter – класс, который применяется для записи файла.

Внимание! Для того, чтобы

Класс PrintWriter PrintWriter – класс, который применяется для записи файла. Внимание! Для
работать с классом PrintWriter, нужно подключить пакет java.io с помощью команды

import java.io.*;

Внимание! В методе main нужно указать исключения ввода-вывода, которые могут генерироваться этим методом

public static void main(String[] args)
throws IOException {

Слайд 18

Конструкторы класса PrintWriter

PrintWriter out = new PrintWriter(<имя файла>);

Общий вид:

Каждый раз при новой

Конструкторы класса PrintWriter PrintWriter out = new PrintWriter( ); Общий вид: Каждый
записи предыдущие данные будут стираться.

Слайд 19

Некоторые методы PrintWriter

Некоторые методы PrintWriter

Слайд 20

Пример. Запись в файл

import java.io.*;
public class Main {
public static void main(String[] args)

Пример. Запись в файл import java.io.*; public class Main { public static

throws IOException {
PrintWriter out = new PrintWriter("out.txt");
out.print ("2 3,4 5 6 7,4 9,1 10,5");
out.close();
}
}

Файл out.txt будет помещен в папке проекта.

Слайд 21

Пример. Чтение и запись – 1

Дмитрий 24
Петр 23
Ольга 22

Имя: Дмитрий ; возраст:

Пример. Чтение и запись – 1 Дмитрий 24 Петр 23 Ольга 22
24
Имя: Петр; возраст: 23
Имя: Ольга; возраст: 22

student.in

student.out

Слайд 22

Пример. Чтение и запись – 2

import java.util.*;
import java.io.*;
public class Main {
public

Пример. Чтение и запись – 2 import java.util.*; import java.io.*; public class
static void main(String[] args)
throws IOException {
File file = new File(“student.in");
Scanner in = new Scanner(file);
PrintWriter out =
new PrintWriter(“student.out");

Слайд 23

Пример. Чтение и запись – 3

while (in.hasNext()) {
String name =

Пример. Чтение и запись – 3 while (in.hasNext()) { String name =
in.next();
int age = in.nextInt();
out.printf("Имя: %s; возраст: %d\n", name, age);
}
in.close();
out.close();
}
}

Слайд 24

Создание текстовых файлов в NetBeans

Для создания текстовых файлов
Вызовите меню «Файл» -

Создание текстовых файлов в NetBeans Для создания текстовых файлов Вызовите меню «Файл»
«Создать файл»,
Выберите категорию «Прочее», тип файла «Пустой файл».
Задайте имя файла с расширением, например sum.in
В поле «Папка» должно быть пусто.
Нажмите кнопку «Готово».
В открывшемся окне отредактируйте входные данные для программы и сохраните их.

Слайд 25

Создание текстовых файлов в NetBeans

Создание текстовых файлов в NetBeans

Слайд 26

Задание

Задача 1. Напишите программу, которая считывает 2 целых числа из файла и

Задание Задача 1. Напишите программу, которая считывает 2 целых числа из файла
выводит сумму этих чисел в другой файл.
Задача 2. Напишите программу, которая считывает все целые числа из файла и выводит сумму этих чисел в другой файл.

Слайд 27

Класс FileWriter

FileWriter – класс, который применяется для записи файла.

Внимание! Для того, чтобы

Класс FileWriter FileWriter – класс, который применяется для записи файла. Внимание! Для
работать с классом FileWriter, нужно подключить пакет java.io с помощью команды

import java.io.*;

Внимание! В методе main нужно указать исключение ввода-вывода, которое может генерироваться этим методом

public static void main(String[] args)
throws IOException {

Слайд 28

Конструкторы класса FileWriter

FileWriter out = new FileWriter(<имя файла>);

Общий вид:

Каждый раз при записи

Конструкторы класса FileWriter FileWriter out = new FileWriter( ); Общий вид: Каждый
предыдущие данные будут удаляться из файла.

FileWriter out = new FileWriter(<имя файла>,
true);

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

Слайд 29

Некоторые методы FileWriter

Некоторые методы FileWriter

Слайд 30

Пример. Запись в файл

import java.io.*;
public class Main {
public static void main(String[] args)

Пример. Запись в файл import java.io.*; public class Main { public static

throws IOException {
FileWriter out = new FileWriter("out.txt");
out.write("2 3,4 5 6 7,4 9,1 10,5 end");
out.close();
}
}

Файл out.txt будет помещен в папку проекта.

Запись данных в файл

Поток закрыт

Слайд 31

Класс Formatter

Formatter – класс, который предлагает преобразования формата, позволяющие отображать числа, строки

Класс Formatter Formatter – класс, который предлагает преобразования формата, позволяющие отображать числа,
в любом виде.
Общий вид:

Formatter fmt = new Formatter();
fmt.format(<форматная строка>,
<список аргументов>);

Внимание! Для того, чтобы работать с классом Formatter, нужно подключить пакет java.util.Formatter

Слайд 32

Пример использования класса Formatter

Formatter fmt = new Formatter();
fmt.format(“Форматировать %s очень
просто:

Пример использования класса Formatter Formatter fmt = new Formatter(); fmt.format(“Форматировать %s очень
%d, %f”,
“с помощью Java”, 10, 98.5);

Объект Formatter, содержащий строку «Форматировать с помощью Java очень просто: 10, 98,500000»

Слайд 33

Пример. Чтение и запись – 1

Василий 24
Петр 23
Анна 24

Имя: Василий; возраст: 24
Имя:

Пример. Чтение и запись – 1 Василий 24 Петр 23 Анна 24
Петр; возраст: 23
Имя: Анна; возраст: 24

in.txt

out.txt

Слайд 34

Пример. Чтение и запись – 2

import java.util.*;
import java.io.*;
public class Main {
public

Пример. Чтение и запись – 2 import java.util.*; import java.io.*; public class
static void main(String[] args)
throws IOException {
File file = new File("in.txt");
Scanner in = new Scanner(file, "cp1251");
FileWriter out = new FileWriter("out.txt");
Formatter fmt = new Formatter();
String s;
Имя файла: Работа-с-файлами-(ввод-и-вывод).pptx
Количество просмотров: 40
Количество скачиваний: 0