程序员七夕情人节表白代码
MainClass:com.wujinxi.ShowLove
package com.wujinxi;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;
public class ShowLove {
public static void main(String[] args) {
//打开记事本
Runtime rt = Runtime.getRuntime();
try {
rt.exec("notepad");
} catch (IOException e) {
e.printStackTrace();
}
//开启播放音乐线程
Thread t = new Thread(() -> {
//测试时资源文件路径填绝对路径
//打包时填资源文件名,资源文件和打包好的jar包放在同级目录下
MusicUtil.playMusic("love.mp3");
});
t.start();
//主线程休息一下,等待音乐氛围烘托起来
try {
Thread.sleep(3666);
} catch (InterruptedException e) {
e.printStackTrace();
}
//记事本开始读写内容
//测试时资源文件路径填绝对路径love
//打包时填资源文件名,资源文件和打包好的jar包放在同级目录下
readAndWrite("love.txt");
}
//读写文件方法
private static void readAndWrite(String path){
FileReader fr = null;
try {
//读取文件
fr = new FileReader(new File(path));
int i = 0;
//一个字符一个字符的读到内存中
while ((i = fr.read()) != -1){
//System.out.println((char)i);
//调用写入方法开始,一边读一边写
copyAndPaste(String.valueOf((char)i));
}
} catch (IOException e) {
e.printStackTrace();
}
}
//使用复制粘贴的方式模拟写入方法
private static void copyAndPaste(String str) {
StringSelection ss = new StringSelection(str);
//打开剪切板,传入参数,实现剪切复制
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,ss);
//模拟Ctrl+V,实现粘贴功能
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
//模拟按下Ctrl键
robot.keyPress(KeyEvent.VK_CONTROL);
//模拟按下V键
robot.keyPress(KeyEvent.VK_V);
//模拟松开V键
robot.keyRelease(KeyEvent.VK_V);
//模拟松开Ctrl键
robot.keyRelease(KeyEvent.VK_CONTROL);
//计算机执行速度快,保证程序正常运行,每次读写完毕休息一下,避免出现剪切板打开失败异常。
//同时使用休息时间为随机数,模拟出正常打字的场景效果
Random random = new Random();
int time = random.nextInt(300);
//避免取得的随机数太小,达不到效果
if (time < 168){
time += 132;
}
robot.delay(time);
}
}
播放音乐的工具类:com.wujinxi.MusicUtil
package com.wujinxi;
import javazoom.jl.player.Player;
import java.io.File;
import java.io.FileInputStream;
//播放音乐工具类
public class MusicUtil {
//播放音乐的方法
public static void playMusic(String path){
try {
Player player = new Player(new FileInputStream(new File(path)));
player.play();
} catch (Exception e) {
e.printStackTrace();
}
}
}
工具类需要导入的jar包(新建一个lib文件夹放入jar包):
- jlayer-1.0.1.jar
参数需要的资源文件(背景音乐、文字内容自己花心思弄一下):
- love.txt
- love.mp3
love.txt示例:
与你一见如故,是我今生最美丽的相遇
与你一诺相许,是我素色年华里最永恒的风景
一直想说,无论走到哪里,最想去的是你的身边
我相信我们可以一起,等青丝变白发
你在,我在,就是海枯石烂
亲爱的,你知道吗,哪怕遍体鳞伤,我仍有爱你的余力
生活就像是包饺子,不管你是什么馅,我都会紧紧的把你包在我心里
任生活的沸水怎样煮,都磨不掉我对你的爱
落一笔长相思,挥洒多少痴情泪,饮一杯浊酒,品了多少世间情
如你是我的的莲花,那么今生让我为你守一世长情
我想爱一个人,就是抛弃一切,唯愿与她相守的决心
爱,没有理由,缘于内心悸动,情,没有借口,缘于千次回眸
爱很简单:一个你,一心一意
我能想到最浪漫的事,就是和你一起慢慢变老
虽然你不是最好的,但却是我独一无二,唯一深爱的
花儿虽多,却没有重复的一朵,但愿你是我生生世世早已注定的
喜欢你的人很多,不缺我一个,但我爱的人很少,只有你一个
只为一人,终其一生,天涯海角,唯愿君安
恋你每一天,爱你每一时,想你每一刻,念你每一分,愿上天成全我们此一世
你的过去我来不及参与,你的未来我奉陪到底
一生情缘,只为伊人而憔悴
爱,并没有那么深奥,能相依相伴就是最大的幸福
因为你,我相信真爱,因为你,我相信永远
你的所在之处,即不得不是我思念的天涯海角
我会用我的一颗真心,一世的时间陪着你,守护你
今生唯一的吝啬,就是你是我的
想着我的未来有你在,其他一切都不怕了
2020有你相伴,我相信我们定然不惧风雨