Читання й запис файлів

Ввід/вивід і потоки в Java

Alex Liu

Software Development Engineer

Приведення типів

  • Перетворення між різними примітивними типами даних

  • Розширювальне перетворення — автоматично з меншого -> більшого

    • byte -> short -> char -> int -> long -> float -> double
// Widening casting - happens automatically
byte myByte = 8;
int myInt = myByte;
  • Звужувальне перетворення — вручну, з більшого -> меншого
// Narrowing casting - is manual
double myDouble = 3.14;
int myInt = (int) myDouble; // Note the (int)
Ввід/вивід і потоки в Java

Специфічне приведення для читання файлу

  • Приведення з int до char: char data = (char) 123;
// Unicode-значення для символу 'a'
int data = 97;
// Безпосередній вивід у форматі `int`
System.out.print(data);
// Приведіть з `int` до `char` і виведіть
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Ввід/вивід і потоки в Java

Читання даних з файлу за допомогою FileReader

  • Імпортуйте клас FileReader, щоб увімкнути читання файлів
import java.io.FileReader;
  • Прочитайте файл, виведіть по символу та закрийте файл
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// Читайте та виводьте кожен символ
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // Закрийте файл, щоб звільнити ресурси
Ввід/вивід і потоки в Java

Ефективне читання з BufferedReader

  • BufferedReader - import java.io.BufferedReader;
    • Читає текстові файли пострічково
    • Ефективніший для великих файлів
// Створіть об'єкт BufferedReader
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// Використовуйте .readLine() для читання рядок за рядком
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Ввід/вивід і потоки в Java

Запис даних за допомогою FileWriter

  • FileWriter:
    • За замовчуванням перезаписує вміст — будьте обережні, щоб не втратити дані!
  • Імпортуйте FileWriter
import java.io.FileWriter;


// Створіть новий об'єкт `FileWriter` FileWriter fw = new FileWriter("example.txt"); // Запишіть дані у файл за допомогою `.write()` fw.write("Overwriting the file."); fw.close()
Ввід/вивід і потоки в Java

Додавання даних за допомогою FileWriter

  • FileWriter
    • Дає змогу додавати дані у файл у режимі append без перезапису наявного вмісту

$$

// Ініціалізуйте `FileWriter` у режимі append
FileWriter fw = new FileWriter("example.txt", true);
// Додайте дані до файлу
fw.write("Appending data.");
fw.close()
Ввід/вивід і потоки в Java

Ефективний запис з BufferedWriter

  • BufferedWriter - import java.io.BufferedWriter;
    • Пише текст ефективніше, великими блоками
    • Мінімізує операції запису
// Створіть об'єкт BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// .newLine() для додавання розриву рядка
bw.newLine(); 
bw.close();
Ввід/вивід і потоки в Java

Давайте потренуємось!

Ввід/вивід і потоки в Java

Preparing Video For Download...