将文本粘贴到外部文本编辑器

时间:2014-09-15 17:50:24

标签: java clipboard notepad

我想在这里提出要求:How to open a file without saving it to disk但是有文字。

据我所知,打开一个文件而不将其保存在磁盘上的某个地方是不可能的,也许是临时文件。

我想问另一种方法是否可行。

另一种方法: 1.创建String,2。将其复制到剪贴板,3。打开文本编辑器,4。将String粘贴到编辑器中。

步骤1,2,3没问题。第4步可以完成吗?

一个想法:在Windows中,可以从java应用程序运行一个bat文件,该文件将粘贴到记事本中。但我更喜欢只用java和平台无关的东西。

1 个答案:

答案 0 :(得分:0)

可以完成第4步。一种方法是使用Robot并模仿CTRL + V命令,如下所示:

        Robot robot = new Robot();

        // For platform independence:
        int ctrlOrCmdKey = -1;
        if(System.getProperty("os.name").toLowerCase().contains("mac")) {
            ctrlOrCmdKey = KeyEvent.VK_META;
        } else {
            ctrlOrCmdKey = KeyEvent.CTRL_MASK;
        }

        robot.keyPress(ctrlOrCmdKey);
        Thread.sleep(10);
        robot.keyPress(KeyEvent.VK_V);
        Thread.sleep(10);
        robot.keyRelease(KeyEvent.VK_V);
        Thread.sleep(10);
        robot.keyRelease(KeyEvent.CTRL_MASK);

如果您正在尝试将数据发送到您正在创建的其他应用程序,您还可以使用PipedInputStream / PipedOutputStream或使用本地主机Web套接字来使用IP协议(这可能不是很干净,但可能)