私はコンソールアプリケーションでクリップボードを読んで、クリップボードの内容を印刷したいと思っています。それはMIMEタイプとは完全に独立して起こるはずです。私がJavaで言う限り、データのMIMEタイプに基づいて行われているので、私が期待していることを知っておく必要があります。デフォルトのDataFlavor
は、テキストとバイナリをサポートしています。一般的なDataFlavor forすべてのMIMEタイプInputStreamとして
とにかく、画像、あらゆる種類のテキスト、シリアル化されたもの、あらゆる種類のバイナリデータをカバーしたいと思います。
簡単な部分はあまり役に立ちませんsystemClipboard.getContents(null).getTransferDataFlavors()
上でループ
Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
です。私はまたDataFlavor
自分自身を作成しようとしましたが、それは(私はサブタイプが「*」することができ、Javaのソースで分析するものから)動作しません。
systemClipboard.getData(new DataFlavor("application/*", "bytes"))
また、私が理解する方法がわかりませんMIMEタイプが実際に何であるかを調べる。私が見たUNIXツールでは、それは私には分かりません。
最終的な目標は、反対のことをするデータジェネレータを作成することです。これは、クリップボードデータを作成して問題のアプリケーションに提供することを意味します。しかし、今は私が作成しなければならない構造を理解する必要があります。そのため、まずパーサが必要です。
クリップボードの「コンテンツ」は、DataFlavorに依存する可能性があります。たとえば、テキストファイルをWordファイルやWebページからメモ帳(つまりプレーンテキスト)にコピーするときを考えてみましょう。はい、あなたは同じ文字を取得しますが、すべてのスタイリング=返された2つの異なるデータセットを失う – ControlAltDel
この質問は無効であるため、この質問を議論の対象外としています。クリップボードから返される内容(データ)要求されたDataFlavorについて – ControlAltDel
@ControlAltDelそうです。そして、私はそこにあるMIMEタイプとそのバイナリプレゼンテーション、あなたの場合はWordやHTMLのように見えます。言い換えれば、それが入っている味を理解したいと思います。そして、私はそれのために 'DataFlavor'を構築したいと思います。 – sjngm