Скопируйте массив байтов прямо в буфер обмена в Java

Есть ли обходной путь для непосредственного копирования байта [] в буфер обмена.

Следующий код прекрасно работает для String.

String str = "My - String";
StringSelection stringSelection = new StringSelection(str);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);

Причина в том, что мой byte[] является длинным, и для его преобразования в String потребуется память и время, как если бы я использовал новую String (bArray) и т. Д., Прежде чем копировать ее.

Благодарю.

1 ответ

Решение

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

DataHandler dataHandler = new DataHandler(bytes, "application/octet-stream");
clpbrd.setContents(dataHandler, null);

DataHandler даже способен обрабатывать входные потоки, поэтому вам может вообще не понадобиться байтовый массив.

Другие вопросы по тегам