Ответ 1
Для записи в поток в памяти используйте:
new ByteArrayOutputStream();
Как создать новый File
(из java.io) в памяти - не на жестком диске?
Я использую язык Java. Я не хочу сохранять файл на жестком диске.
Для записи в поток в памяти используйте:
new ByteArrayOutputStream();
Как создать новый файл (из java.io) в памяти, а не на жестком диске?
Возможно, вы путаете File
и Stream
:
File
- абстрактное представление файла и каталога пути. Используя объект File
, вы можете получить доступ к метаданным файлов в файловой системе и выполнить некоторые операции над файлами в этой файловой системе, например удалить или создать файл. Но класс File
не предоставляет методы для чтения и записи содержимого файла.Stream
, например FileInputStream
или FileOutputStream
. Эти потоки могут быть созданы из объекта File
, а затем использоваться для чтения и записи в файл.Вы можете создать поток на основе байтового буфера, который находится в памяти, используя ByteArrayInputStream
и ByteArrayOutputStream
для чтения и записи в буфере байта аналогичным образом, который вы читаете и записываете из файла. Массив byte
содержит содержимое "Файл". Тогда вам не нужен объект File
.
Оба потока File...
и ByteArray...
наследуют от java.io.OutputStream
и java.io.InputStream
соответственно, так что вы можете использовать общий суперкласс, чтобы скрыть, читаете ли вы из файла или из массива байтов.
Вы можете использовать java.io.StringWriter.