から読み取り可能なテキストを取得しますが、時にはテキストは、Microsoft WordからまたはEclipseからのウェブサイト、あるいはソースコードからコピーするときのように、いくつかの奇妙なDataFlavor
でエンコードされています。これらDataFlavor
sから純粋なプレーンテキストを抽出する方法を私はすでにJavaでクリップボードからプレーンテキストを取得する方法を知っている唯一のクリップボード
?
から読み取り可能なテキストを取得しますが、時にはテキストは、Microsoft WordからまたはEclipseからのウェブサイト、あるいはソースコードからコピーするときのように、いくつかの奇妙なDataFlavor
でエンコードされています。これらDataFlavor
sから純粋なプレーンテキストを抽出する方法を私はすでにJavaでクリップボードからプレーンテキストを取得する方法を知っている唯一のクリップボード
?
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
String data = (String) Toolkit.getDefaultToolkit()
.getSystemClipboard().getData(DataFlavor.stringFlavor);
getData()メソッドとstringFlavorを使用すると、クリップボードからプレーンテキストを取得する必要があります。
奇妙なテキストがクリップボードに存在する場合、私は、これはクリップボードにデータを置くプログラムの開発の問題だと思います。
を探しています、太字、斜体... –
警告:上記のコードを使用すると、この既知のJavaバグhttp://bugs.java.com/bugdatabase/view_bug.do?bug_id=6606476(私がやったように)を打つことができ、作業はありませんまわり。幸いにも私はPerlをインストールしているので、クリップボードの内容をプレーンテキストに設定するPerlスクリプトを呼び出すことができます。 :( –
@SteveWaringその奇妙なuncatchableエラーで頭をアップしてくれてありがとう。まだテストしていないが、私はSystem.errストリームをnullに設定し、Dragon8のソリューションを試しているときにnullポインタをキャッチすることをお勧めします。 T)^ _ ^行われたときに正常に戻って、それを設定するのを忘れ – ThatOneGuy
まず私は、クリップボードに働いていないが、これは、クリップボードからデータを読み込むには、」http://docstore.mik.ua/orelly/java/awt/ch16_01.htm
から
をintrestingのようで、プログラムがたTransferable.getTransferData()メソッドを呼び出します。データが表現されている場合Javaクラス(たとえばplainTextFlavor)に対応しないDataFlavorによって、getTransferData()はデータを読み取るためのInputStreamを返します。
だから、あなたはそれをあなたがInputStreamを取得correspontしないと、あなたは自分のInputStreamから「純粋な」テキストを読むことができるクラスを与えれば。
あなたはJavaでクリップボードのテキストを取得する方法次使用することができます[DataFlavor.plainTextFlavor](http://docs.oracle.com/javase/7/docs/api/java/awt/datatransfer/DataFlavor.html#plainTextFlavor )は、Java 1.3以後廃止予定です。 – Huxi
:
public String getClipBoard(){
try {
return (String)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
} catch (HeadlessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedFlavorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
おかげで、しかし、私たちは、テキストstyle..egを取得したい場合、我々はどのように行うかJavaソリューションではなく、JavaScriptの – clamp