Подтвердить что ты не робот

Как создать новый java.io.File в памяти?

Как создать новый File (из java.io) в памяти - не на жестком диске?

Я использую язык Java. Я не хочу сохранять файл на жестком диске.

4b9b3361

Ответ 1

Для записи в поток в памяти используйте:

new ByteArrayOutputStream();

Ответ 2

Как создать новый файл (из java.io) в памяти, а не на жестком диске?

Возможно, вы путаете File и Stream:

  • A File - абстрактное представление файла и каталога пути. Используя объект File, вы можете получить доступ к метаданным файлов в файловой системе и выполнить некоторые операции над файлами в этой файловой системе, например удалить или создать файл. Но класс File не предоставляет методы для чтения и записи содержимого файла.
  • Для чтения и записи из файла вы используете объект Stream, например FileInputStream или FileOutputStream. Эти потоки могут быть созданы из объекта File, а затем использоваться для чтения и записи в файл.

Вы можете создать поток на основе байтового буфера, который находится в памяти, используя ByteArrayInputStream и ByteArrayOutputStream для чтения и записи в буфере байта аналогичным образом, который вы читаете и записываете из файла. Массив byte содержит содержимое "Файл". Тогда вам не нужен объект File.

Оба потока File... и ByteArray... наследуют от java.io.OutputStream и java.io.InputStream соответственно, так что вы можете использовать общий суперкласс, чтобы скрыть, читаете ли вы из файла или из массива байтов.

Ответ 3

Вы можете использовать java.io.StringWriter.