Скопируйте массив байтов прямо в буфер обмена в 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 даже способен обрабатывать входные потоки, поэтому вам может вообще не понадобиться байтовый массив.