Java小聪明编程IWrite粘贴小助手——YouWrite

Posted 九死九歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小聪明编程IWrite粘贴小助手——YouWrite相关的知识,希望对你有一定的参考价值。

一、背景(一些屁话)

  事情是这样的,今天突然间想起来IWrite没有写。于是打开iwrite,禁用脚本,准备一如既往地复制粘贴。

  结果。。。一点用也没,禁用脚本的话,别说粘贴了,自己写都不行。

  明明上学期还能通过禁用脚本来粘贴的,这学期居然不行了,看来是系统升级了。

  但这能难得到我?

  破网站还要i write。那我偏不,我要you write。

  怀着这样的想法,跨世纪的工程——YouWrite诞生了。利用Java的IO流和Robot类型,解决了iwrite不能复制粘贴的世纪难题。



  (上图是西安邮电大学因iwrite不能复制粘贴而面露难色的二人)

二、核心代码

  直接上代码:

package cn.unipus.youwrite;

import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.*;

public class YouWrite 

	private static BufferedReader br;
	private static Robot r;

	private static void write(char ch) 

		/* 如果是小写字母 */
		if ('a' <= ch && ch <= 'z') 
			int temp = ch & 0xDF;
			r.keyPress(temp);
			r.keyRelease(temp);
			return;
		

		/* 如果是大写字母 */
		if ('A' <= ch && ch <= 'Z') 
			r.keyPress(KeyEvent.VK_SHIFT);
			r.keyPress(ch);
			r.keyRelease(ch);
			r.keyRelease(KeyEvent.VK_SHIFT);
			return;
		

		/* 如果是数字 */
		if ('0' <= ch && ch <= '9') 
			r.keyPress(ch);
			r.keyRelease(ch);
			return;
		

		/* 其他字符 */
		try 
			r.keyPress(ch);
			r.keyRelease(ch);
		 catch (IllegalArgumentException e) 
			System.out.print(ch);
			System.out.println("字符非法,已跳过。");
		

	

	private static void init() 
		try 
			r = new Robot();
		 catch (AWTException e) 
			System.err.println("机器人创建失败");
			e.printStackTrace();
		

		try 
			br = new BufferedReader(
					new InputStreamReader(
							new FileInputStream("text.txt")));
		 catch (FileNotFoundException e) 
			System.err.println("IO异常");
			e.printStackTrace();
		
	

	public static void write() 

		if (br == null) init();

		/* 缓冲区大小设置为1MB */
		char[] buffer = new char[512];
		int l = 0;

		try 
			/* 遍历输出流 */
			while ((l = br.read(buffer)) > 0) 
				for (int i = 0; i < l; i++) 
					write(buffer[i]);
				
			
		 catch (IOException e) 
			e.printStackTrace();
		

	



  YouWrite类是一个不可实例化的类,其中只有一个write()静态方法是对外透明的,调用该方法后,程序会读取"text.txt"文件,并自动控制键盘输入文件中的内容。

  (写完代码后累得昏撅的九死九歌)

三、使用方法

  我们再写一个主类:(或者你也可以把主函数放到YouWrite里边,随缘咯)

package cn.unipus.youwrite;

public class Main 

	public static void main(String[] args) 
		YouWrite.write();
	


  创建一个"text.txt"的文件:

  从某没良心的搜索引擎上copy一篇英文作文并粘贴到"text.txt"中:

  回到Main中,直接运行。并把光标放到iwrite的输入框,像这样:(切记一定要切成英文输入)

  过会儿后:

  我们看看控制台:

  毕竟我这个代码的原理是分析字符对应的键盘按键并控制键盘键入,汉字的话还得分析汉字的拼音之类的,工程量太大了,直接跳过完事。







最后编辑于1919年8月10日 11:45:14

以上是关于Java小聪明编程IWrite粘贴小助手——YouWrite的主要内容,如果未能解决你的问题,请参考以下文章

KSP - 元编程编译提速的小助手

程序员小助手Emacs,最强编辑器,没有之一

word中的照片怎么复制粘贴出来??HELP~~THANK YOU!!!

浅谈java响应式编程以及Reactor 3框架(内有福利)

小程序的车载场景应用

程序员小助手Emacs,最强编辑器,没有之一