JAVA InputStream.toString () обратно в InputStream - PullRequest
1 голос
/ 14 марта 2020

Я играю со старым и заброшенным JAVA рендерером по имени Sunflow . В некоторых классах один из методов сохраняет изображение InputStream в виде строки (InputStream.toString()). Теперь мне интересно: есть ли способ, как преобразовать обратно сохраненное значение InputStream.toString() в InputStream?

Ответы [ 2 ]

2 голосов
/ 14 марта 2020

Нет, InputStream не переопределяет toString(), он использует существующую базовую реализацию из Object, которая возвращает:

getClass().getName() + "@" + Integer.toHexString(hashCode())

Результат этого вызова метода примерно такой: InputStream@<hex_hash_code>, и вы не можете восстановить исходный InputStream из этого String.

1 голос
/ 14 марта 2020

Вы можете сделать это:

InputStream stream = new ByteArrayInputStream(mystr.getBytes(StandardCharsets.UTF_8));

Предполагая, что строка имеет кодировку UTF-8.

...