亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Java如何將文本復(fù)制到剪貼板

 更新時(shí)間:2024年05月31日 09:19:52   作者:Fy哥  
這篇文章主要介紹了使用Java如何將文本復(fù)制到剪貼板問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java將文本復(fù)制到剪貼板

關(guān)鍵代碼

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

Clipboard類(lèi)的2個(gè)主要方法:

setContents(Transferable contents, ClipboardOwner owner)
getContents(Object requestor)

Clipboard類(lèi):實(shí)現(xiàn)使用剪切/復(fù)制/粘貼操作傳輸數(shù)據(jù)的機(jī)制的類(lèi)

代碼示例(僅供參考)

package exer04;
 
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
 
public class CopyToClipboard{
	public static void main(String[] args) throws Exception{
		Transferable canonicalNameSelection = new StringSelection("java");
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
 
		//實(shí)現(xiàn)復(fù)制功能:將當(dāng)前程序中的字符串復(fù)制到剪貼板中去
//		clipboard.setContents(canonicalNameSelection, null);
 
		canonicalNameSelection = clipboard.getContents(null);
		
		//獲取剪貼板上的內(nèi)容
		Object obj =  canonicalNameSelection.getTransferData(DataFlavor.stringFlavor);
 
		System.out.println(obj);
	}
}

java實(shí)現(xiàn)復(fù)制剪切粘貼(面向接口)

功能分析

  • 1.復(fù)制操作:用戶(hù)選擇要復(fù)制的文件路徑,然后程序?qū)?fù)制的文件的文件路徑存放到一個(gè)臨時(shí)文件夾中。
  • 2.剪切操作:用戶(hù)選擇要剪切的文件路徑,然后程序?qū)⒓羟械奈募穆窂酱娣诺揭粋€(gè)臨時(shí)文件夾中,再將原文件刪除。復(fù)制和剪切都放在同一個(gè)臨時(shí)文件夾中。
  • 3.粘貼操作:用戶(hù)選擇要粘貼的文件路徑,然后程序會(huì)從臨時(shí)文件中將用戶(hù)文件寫(xiě)入用戶(hù)要粘貼的文件夾中。如果該文件夾中有同名文件,則詢(xún)問(wèn)用戶(hù)是否替換原文件或跳過(guò)該文件。
  • 4.進(jìn)行復(fù)制剪切操作時(shí)要判斷文件是否存在,存在才能進(jìn)行此操作,否則提示用戶(hù)文件不存在。

代碼實(shí)現(xiàn)

1.主頁(yè)面:

import java.io.IOException;
import java.util.Scanner;
 
public class MyMain {
    public static void main(String[] args) throws Exception {
        System.out.println("------------------------------");
        System.out.println("           復(fù)制粘貼剪切系統(tǒng)");
        System.out.println("                 作者:蕭蕭");
        System.out.println("                 版本:v1.0");
        System.out.println("------------------------------");
 
        Operation operation = new Operation();
        Scanner scanner = new Scanner(System.in);
//        operation.copy("F:\\javafile\\a.txt");
//        operation.paste("F:\\javafile\\paste\\1.txt");
 
        //定義option,這里用char類(lèi)型,用來(lái)判斷用戶(hù)輸入的是否是1-4,防止用戶(hù)輸入1-4之外的內(nèi)容
        char option;
        //do while循環(huán),運(yùn)行時(shí)先執(zhí)行一遍再判斷循環(huán)條件
        do{
            //由用戶(hù)自主選擇要進(jìn)行的操作
            System.out.println("請(qǐng)選擇你要執(zhí)行的操作:");
            System.out.println("1.復(fù)制   2.剪切   3.粘貼   4.退出");
            //定義一個(gè)String類(lèi)型接收用戶(hù)輸入的內(nèi)容
            String myoption = scanner.next();
            //將用戶(hù)輸入的內(nèi)容轉(zhuǎn)換為char類(lèi)型
            option = myoption.toCharArray()[0];
            //判斷用戶(hù)的選擇,從而實(shí)現(xiàn)相對(duì)應(yīng)的操作
            switch (option){
                case '1': operation.copy();break;  //復(fù)制操作
                case '2': operation.shear();break; //剪切操作
                case '3': operation.paste();break; //粘貼操作
                case '4': System.out.println("正在退出......");break;  //用戶(hù)輸入4則退出
                default:  System.out.println("你選擇的功能編號(hào)不正確,請(qǐng)重新選擇!");  //如果用戶(hù)輸入1-4之外的內(nèi)容,則提示重新輸入
            }
        }while (option != '4');
 
    }
}

2.功能實(shí)現(xiàn)頁(yè)面:

import java.io.*;
import java.util.Locale;
import java.util.Scanner;
 
public class Operation implements Function{
    public Operation() {
    }
 
    //復(fù)制和剪切功能的寫(xiě)入操作
    @Override
    public void save(String path) throws Exception{
        //字符讀取,這里的path是要復(fù)制和剪切的路徑
        FileReader fileReader = new FileReader(path);
        //字符輸出,復(fù)制和剪切后的路徑都存在一個(gè)臨時(shí)文件夾temp中
        FileWriter fileWriter = new FileWriter("F:\\javafile\\temp\\1.txt");
        BufferedReader bu_read = new BufferedReader(fileReader);
        BufferedWriter bu_write = new BufferedWriter(fileWriter);
        //定義變量line,接收每一行的數(shù)據(jù)
        String line;
        //判斷文件中的每一行是否為空,不為空則繼續(xù)循環(huán),為空就是沒(méi)有字符了,退出循環(huán)
        while ((line=bu_read.readLine())!=null){
            //寫(xiě)入
            bu_write.write(line);
            //換行
            bu_write.write("\n");
        }
        //關(guān)閉文件
        bu_read.close();
        bu_write.close();
    }
 
    //粘貼功能的寫(xiě)入操作
    @Override
    public void paste_file(String path) throws IOException {
        //字符讀取,因?yàn)閺?fù)制和粘貼后的文件路徑都存放在了temp中,所以要將其內(nèi)容粘貼,直接讀取temp中的文件
        FileReader fileReader = new FileReader("F:\\javafile\\temp\\1.txt");
        //字符輸出,這里的path是要粘貼的路徑
        FileWriter fileWriter = new FileWriter(path);
        BufferedReader bu_read = new BufferedReader(fileReader);
        BufferedWriter bu_write = new BufferedWriter(fileWriter);
        //定義變量line,接收每一行的數(shù)據(jù)
        String line;
        //判斷文件中的每一行是否為空,不為空則繼續(xù)循環(huán),為空就是沒(méi)有字符了,退出循環(huán)
        while ((line=bu_read.readLine())!=null){
            //寫(xiě)入
            bu_write.write(line);
            //換行
            bu_write.write("\n");
        }
        //關(guān)閉文件
        bu_read.close();
        bu_write.close();
    }
 
    //復(fù)制文件操作
    @Override
    public void copy() throws Exception {
        Scanner scanner = new Scanner(System.in);
        //由用戶(hù)選擇復(fù)制的文件路徑
        System.out.println("你要復(fù)制的文件路徑:");
        String path = scanner.next();
        //定義myfile
        File myfile = new File(path);
        try{
            //判斷文件是否在文件夾中存在,如果存在,則可以將這個(gè)文件復(fù)制下來(lái)
            myfile.exists();
            //調(diào)用復(fù)制和剪切功能的寫(xiě)入操作的這個(gè)函數(shù)
            this.save(path);
        }catch (Exception e){
            //不存在則拋出 文件不存在
            System.out.println("文件不存在!");
        }
 
    }
 
    //剪切文件操作
    @Override
    public void shear() throws Exception{
        Scanner scanner = new Scanner(System.in);
        //由用戶(hù)選擇剪切的文件路徑
        System.out.println("你要剪貼的文件路徑:");
        String path = scanner.next();
        //定義myfile
        File myfile = new File(path);
        try{
            //判斷文件是否在文件夾中存在,如果存在,則可以將這個(gè)文件剪切下來(lái)
            myfile.exists();
            //調(diào)用復(fù)制和剪切功能的寫(xiě)入操作的這個(gè)函數(shù)
            this.save(path);
            //文件剪切之后,文件夾就沒(méi)有這個(gè)文件了,所以進(jìn)行刪除操作,而剪切的文件路徑已經(jīng)存放進(jìn)緩存了
            //注意:必須要先把文件關(guān)閉了才能刪除文件
            myfile.delete();
        }catch (Exception e){
            //不存在則拋出 文件不存在
            System.out.println("文件不存在!");
        }
 
    }
 
    //粘貼文件操作
    @Override
    public void paste() throws Exception{
        Scanner scanner = new Scanner(System.in);
        //由用戶(hù)選擇粘貼的文件路徑
        System.out.println("你要粘貼到的文件的路徑:");
        String path = scanner.next();
        //定義myfile
        File myfile = new File(path);
        //當(dāng)我們將一個(gè)文件復(fù)制到一個(gè)文件夾中時(shí),如果存在同名的文件,會(huì)進(jìn)行詢(xún)問(wèn)  替換源文件還是跳過(guò)
        //所以判斷,如果文件存在
        if(myfile.exists()){
            //彈出提示
            System.out.println("目標(biāo)已包含一個(gè)名為" + myfile.getName() + "的文件");
            //用戶(hù)選擇替換原文件還是跳過(guò)
            System.out.println("替換目標(biāo)中的文件(R)");
            System.out.println("跳過(guò)該文件(S)");
            //接收用戶(hù)的選擇
            String option = scanner.next().toUpperCase();
            switch (option) {
                case "R":
                    //用戶(hù)選擇R,則替換掉原來(lái)的文件,將新的內(nèi)容寫(xiě)進(jìn)文件
                    paste_file(path);
                    break;
                case "S":
                    //用戶(hù)選擇S,則跳過(guò)文件,新文件內(nèi)容不寫(xiě)入文件中,直接break
                    break;
            }
        }else {
            //如果不存在同名的文件,則直接寫(xiě)入
            paste_file(path);
        }
 
    }
}

3.功能實(shí)現(xiàn)的接口:

import java.io.IOException;
 
public interface Function {
 
    //復(fù)制功能
    public void copy() throws Exception;
    //剪切功能
    public void shear() throws Exception;
    //復(fù)制和剪切功能的寫(xiě)入操作
    public void save(String path) throws Exception;
    //粘貼功能
    public void paste() throws Exception;
    //粘貼功能的寫(xiě)入操作
    public void paste_file(String path) throws IOException;
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評(píng)論