Ответ
Нет. InputStream и его подклассы (например, FileInputStream) предназначены исключительно для чтения данных из источника (файла, массива байт, сетевого соединения). Они не выполняют и не инициируют запись.
Для записи используются классы OutputStream:
// 1. Только чтение — запись НЕ происходит
InputStream in = new FileInputStream("input.txt");
int data = in.read();
// 2. Запись требует явного использования OutputStream
OutputStream out = new FileOutputStream("output.txt");
out.write(data); // Запись происходит здесь
out.close();
Ключевое различие:
InputStream— абстракция входного потока (источник данных).OutputStream— абстракция выходного потока (приёмник данных).
Создание FileOutputStream с флагом append может создать файл, если его нет, но данные запишутся только после вызова write().
Ответ 18+ 🔞
А, слушай, вот тут народ частенько путается, как будто в темноте за угол завернул не в ту подворотню. Так вот, InputStream и вся его семейка — это, блядь, строго одностороннее движение, как поезд в тупик. Только чтение, нихуя больше.
Представь себе водопроводный кран. InputStream — это когда ты из него воду пьёшь. Ты можешь её хлебать, булькать, но ты не можешь через этот же кран, ёпта, обратно суп залить! Для этого нужна другая труба — OutputStream.
Вот смотри, как это на практике выглядит, чтобы ни у кого сомнений не осталось:
// Ситуация первая: читаем, как последнюю газету в сортире.
// Запись? Нихуя! Только всасываем данные.
InputStream in = new FileInputStream("input.txt");
int data = in.read(); // Прочитал один байтик. Всё.
// Ситуация вторая: а вот если надо записать.
// Берём ПРАВИЛЬНЫЙ инструмент — OutputStream.
OutputStream out = new FileOutputStream("output.txt");
out.write(data); // А вот ЩАС, сука, запись и происходит! Плюх — и байт в файле.
out.close();
Короче, запомни раз и навсегда, как "отче наш":
InputStream— это ВХОД. Ты оттуда тащишь. Источник. Рот, а не жопа.OutputStream— это ВЫХОД. Ты туда пихаешь. Приёмник. Жопа, а не рот.
Да, есть один нюанс, который мозги запудривает: когда ты создаёшь FileOutputStream для нового файла, система этот файл создаёт. Но это просто подготовка места, как стул перед сраньём. Сам процесс записи — это когда ты вызываешь метод write(). Вот тогда-то всё и летит в нужную, ёбта, дырку.