1.
創(chuàng)新互聯(lián)建站長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為天壇街道企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),天壇街道網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
往剪切板寫文本數(shù)據(jù)(就是常說的String拉)
Java代碼
protected
static
void
setClipboardText(Clipboard
clip,
String
writeMe)
{
Transferable
tText
=
new
StringSelection(writeMe);
clip.setContents(tText,
null);
}
protected
static
void
setClipboardText(Clipboard
clip,
String
writeMe)
{
Transferable
tText
=
new
StringSelection(writeMe);
clip.setContents(tText,
null);
}
2.
從指定的剪切板中獲取文本內(nèi)容
Java代碼
protected
static
String
getClipboardText(Clipboard
clip)
throws
Exception{
//
獲取剪切板中的內(nèi)容
Transferable
clipT
=
clip.getContents(null);
if
(clipT
!=
null)
{
//
檢查內(nèi)容是否是文本類型
if
(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
return
(String)clipT.getTransferData(DataFlavor.stringFlavor);
}
return
null;
}
如果是JTable.等java圖形界面的組件,那么獲取數(shù)據(jù),賦值都比較簡單.
但是看圖片,是要寫一個(gè)Excel的輔助功能, 這對java來說還是有點(diǎn)麻煩了.
最優(yōu)建議:
Excel的功能. 那么最佳的建議,是使用vba 語言進(jìn)行擴(kuò)展.(微軟出品,簡單,方便,代碼量極少) .
其次的建議:
C/C++ 鍵盤鉤子 , 當(dāng)讀取到按鍵F9時(shí) ,模擬鍵盤的復(fù)制粘貼等操作.
不推薦java , 但java也能勉強(qiáng)湊合解決這個(gè)問題:
因?yàn)閖ava 很難獲取系統(tǒng)底層的按鍵, Robot也很有局限, 比如窗口失去焦點(diǎn)的時(shí)候,讀取不到F9按鍵. ? 所以java需要調(diào)用JNI c語言 比較繁瑣. 比較簡單的是調(diào)用JNA了,但代碼量也不少.
當(dāng)然了如果非要用java寫,也可以,我手寫了一個(gè)簡單的JNA+Robot配合
效果圖
File file=new File("E:\\1.txt");//創(chuàng)建文件對象,
FileInputStream fread; //FileInputStream 用于讀取諸如圖像數(shù)據(jù)之類的原始字節(jié)流。要讀取字符流,請考慮使用 FileReader。
BufferedInputStream reader=null;
BufferedOutputStream write=null; //該類實(shí)現(xiàn)緩沖的輸出流。通過設(shè)置這種輸出流,應(yīng)用程序就可以將各個(gè)字節(jié)寫入底層輸出流中,而不必針對每次字節(jié)寫入調(diào)用底層系統(tǒng)。
try
{
fread = new FileInputStream(file);//將文件對象添加到文件的輸入流,也就是你要從你的數(shù)據(jù)源開始讀取數(shù)據(jù)
reader=new BufferedInputStream(fread);//將字節(jié)流對象添加到緩存區(qū)中,這樣效率要高一點(diǎn)
String str=null;//初始化字符串這樣保存的是讀取的一行的數(shù)據(jù)
write=new BufferedOutputStream(new FileOutputStream(new File("E:\\2.txt")));//創(chuàng)建的是輸出流緩存 請要輸出的目的地添加到緩存區(qū)中,
byte b[]=new byte[1024];//定義每次讀取的字節(jié)的范圍,也是存儲數(shù)據(jù)的容器
int i=0;
while((i=reader.read(b))!=-1) //下一個(gè)數(shù)據(jù)字節(jié),如果到達(dá)流末尾,則返回 -1。
{
write.write(b);//開始寫入數(shù)據(jù)
}
}
catch (FileNotFoundException e) //如果沒有文件打印該異常
{
e.printStackTrace();
}
catch (IOException e) //如果出現(xiàn)io異常 也就處理異常
{
e.printStackTrace();
}
finally//最后不管讀取還是沒讀取成功都釋放資源
{
try
{
write.close();//關(guān)閉緩存區(qū),關(guān)閉緩存區(qū)會自動關(guān)閉相應(yīng)的io流
reader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
eclipse打開并運(yùn)行一個(gè)已經(jīng)寫好的java文件步驟如下:1、新建一個(gè)java工程項(xiàng)目:右鍵Eclipse的PackageExplorer空白部分,點(diǎn)擊New,再點(diǎn)擊JavaProject,輸入工程名,點(diǎn)擊finish;2、在新建的工程里新建一個(gè)類:右鍵工程,點(diǎn)擊New,再點(diǎn)擊Class,
騷年,你這個(gè)取一行寫一行,人家java已經(jīng)去掉了換行符,你要取一行就在后面加換行符??!
while (scanner.hasNextLine ())
{
fw.write (scanner.nextLine ()+"\r\n");
}
CTRL+C復(fù)制
CTRL+V粘貼
或者選中代碼,右鍵,COPY
要粘貼的地方,右鍵,P開頭那個(gè)