Я хотел бы прочитать буфер обмена в консольном приложении и распечатать содержимое буфера обмена. Это должно происходить полностью независимо от типа MIME. Насколько я могу судить по Java, все это делается на основе MIME-типа данных, и я должен знать, чего я ожидаю. По умолчанию DataFlavor
s поддерживает только текст и некоторые двоичные файлы.Общий DataFlavor для всех MIME-типов Как InputStream
В любом случае, я хочу покрыть изображения, все виды текста, сериализованные материалы и любые двоичные данные.
Легкая часть
Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Looping над systemClipboard.getContents(null).getTransferDataFlavors()
не помогает. Я также пытался создать свою собственную DataFlavor
, но это не работает (от того, что я проанализировал в источнике Явы подтип может быть «*»):
systemClipboard.getData(new DataFlavor("application/*", "bytes"))
Кроме того, я не знаю, как определить на самом деле MIME-тип. Никакой UNIX-инструмент, на который я смотрел, не мог мне этого сказать.
Моя конечная цель - написать генератор данных, который делает обратное, что означает создание данных буфера обмена и предоставление этого приложения. Но на данный момент я должен выяснить структуру, которую мне нужно создать, поэтому мне нужен этот синтаксический анализатор в первую очередь.
«Содержимое» буфера обмена может быть зависимым от DataFlavor. Например, подумайте о том, когда вы скопируете текст из файла Word или WebPage в блокнот (т.е. простой текст). Да, вы получаете те же буквы, но вы теряете все стилирование = два разных набора данных возвращены – ControlAltDel
Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что этот вопрос неверен: содержимое (данные), возвращенные буфером обмена, зависит в запросе DataFlavor. – ControlAltDel
@ControlAltDel Правильно. И я хочу посмотреть, какой тип MIME находится там и его двоичное представление, в вашем случае, что это похоже на Word или HTML. Другими словами, я хочу понять, в чем он заключается. И я хочу создать для него «DataFlavor». – sjngm