Бесплатный курс по Java: от основ до продвинутого уровня
FileStream в Java: чтение и запись файлов
FileOutputStream, FileInputStream – для чтения файла и записи в файл.
В конструкторе должен быть указываем путь к файлу с которым будем совершать ввод/вывод.
Пример программы:
import java.io.*;
import java.util.*;
class FileStreamLesson {
public static void main(String[] args) {
try {
// FileOutputStream – для записи в файл. В конструктор
// FileOutputStream передаем в виде строки путь к файлу
// в который будем записывать.
// Если полноценный путь не указан, а только файл, значит
// файл, который мы собираемся читать/записывать находится
// в той же папке где и текущий файл java в который вы
// сейчас смотрите.
FileOutputStream fileOutputStream =
new FileOutputStream(“person.txt”);
// FileInputStream – для чтения файла. Также передаем путь
FileInputStream fileInputStream =
new FileInputStream(“person.txt”);
// Поскольку это OutputStream и InputStream значит, что
// читать из файла или записывать в файл будем байты.
// Поэтому чтобы записать в файл строку String
// ее сначала нужно преобразовать в массив байтов,
// и а его уже записывать в файл. Ниже это делаем.
// Строка которую будем записывать
String str = “Some Text”;
// преобразовываем строку в байты
byte[] buff = str.getBytes();
// через поток записи в файл записываем туда массив байт
fileOutputStream.write(buff, 0, buff.length);
// Теперь прочитаем из файла person.txt
// только что нами записанную строку.
// available возвращает текущее количество байтов в файле
// и пока оно больше нуля цикл продолжается.
int i;
while (fileInputStream.available() > 0) {
// с помощью read на каждой итерации цикла
// считываем один байт и записываем в переменную int.
// и после read возвращаемое количество байтов
// через метод available уменьшается на 1
i = fileInputStream.read();
// также необходимо привести к символу
// полученный из файла байт
System.out.println((char) i);
}
} catch (Exception e) {
}
}
}
После fileOutputStream.write(buff,0,buff.length); в файл person.txt записывается “Some Text” и файл выглядит так:
Циклом побайтно считается файл с помощью FileInputStream: