//处理字符串,把全文的全角标点转成半角
public static String replace(String line)
{
HashMap map = new HashMap();
map.put(",", ",");
map.put("。", ".");
map.put("〈", "<");
map.put("〉", ">");
map.put("‖", "|");
map.put("《", "<");
map.put("》", ">");
map.put("〔", "[");
map.put("〕", "]");
map.put("﹖", "?");
map.put("?", "?");
map.put("“", "\"");
map.put("”", "\"");
map.put(":", ":");
map.put("、", ",");
map.put("(", "(");
map.put(")", ")");
map.put("【", "[");
map.put("】", "]");
map.put("—", "-");
map.put("~", "~");
map.put("!", "!");
map.put("‵", "'");
map.put("①", "1");
map.put("②", "2");
map.put("③", "3");
map.put("④", "4");
map.put("⑤", "5");
map.put("⑥", "6");
map.put("⑦", "7");
map.put("⑧", "8");
map.put("⑨", "9");
int length = line.length();
for (int i = 0; i < length; i++) {
String charat = line.substring(i, i + 1);
if (map.get(charat) != null) {
line = line.replace(charat, (String) map.get(charat));
}
}
return line;
}
//要处理的源文件位置
String inputFile = "D:\\全文检索\\钢铁是怎么练成的.txt";
//处理后的文件存放位置
String ouputDir="D:\\全文检索\\Fileresult\\";
//判断处理后的存放位置是否存在,如时机不存在则创建一个新的文件夹
try {
int index=0;
File f = new File(inputFile);
FileInputStream fs = new FileInputStream(f);
//StringBuffer sb = new StringBuffer();
String content =null;
byte [] bytes = new byte[10240];
while (fs.read(bytes, 0,10240)!=-1) {
content =new String(bytes,"gbk").concat("\r\n");
FileWriter fw = new FileWriter(String.format("%S result%s.txt",ouputDir,index));
BufferedWriter bw = new BufferedWriter(fw);
bw.write(optionStr.replace(content));
bw.close();
fw.close();
index++;
}
fs.close();
} catch (FileNotFoundException e) {
//
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
|
public void sendHtml(String usermail,String zhuti,String html) throws MessagingException
{
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
//设定mail server
senderImpl.setHost("smtp.126.com");
//建立邮件消息,发送简单邮件和html邮件的区别
MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");
//设置收件人,寄件人
messageHelper.setTo(收件人);
messageHelper.setFrom("发件人");
messageHelper.setSubject("主题");
//true 表示启动HTML格式的邮件
messageHelper.setText(html,true);
senderImpl.setUsername("用户名") ; // 根据自己的情况,设置username
senderImpl.setPassword("密码") ; // 根据自己的情况, 设置password
Properties prop = new Properties() ;
prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.timeout", "25000") ;
senderImpl.setJavaMailProperties(prop);
//发送邮件
senderImpl.send(mailMessage);
System.out.println("邮件发送成功..");
}
|
package org.sharpcode.other;
/*
* DesEncrypt.java
*
*字符串对称加密
*/
//思路: 因为 任意一个字符串,都是由若干字节表示的,每个字节实质就是一个
// 有8位的进进制数,
// 又因为 一个8位二进制数,可用两位16进制字符串表示.
// 因此 任意一个字符串可以由两位16进制字符串表示。
// 而 DES是对8位二进制数进行加密,解密。
// 所以 用DES加密解密时,可以把加密所得的8位进进制数,转成
// 两位16进制数进行保存,传输。
// 具体方法:1 把一个字符串转成8位二进制数,用DES加密,得到8位二进制数的
// 密文
// 2 然后把(由1)所得的密文转成两位十六进制字符串
// 3 解密时,把(由2)所得的两位十六进制字符串,转换成8位二进制
// 数的密文
// 4 把子3所得的密文,用DES进行解密,得到8位二进制数形式的明文,
// 并强制转换成字符串。
// 思考:为什么要通过两位16进制数字符串保存密文呢?
// 原因是:一个字符串加密后所得的8位二进制数,通常不再时字符串了,如果
// 直接把这种密文所得的8位二进制数强制转成字符串,有许多信息因为异
// 常而丢失,导制解密失败。因制要把这个8位二制数,直接以数的形式
// 保存下来,而通常是用两位十六进制数表示。
import java.security.Key;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
/**
*
* 使用DES加密与解密,可对byte[],String类型进行加密与解密
* 密文可使用String,byte[]存储.
*
* 方法:
* void getKey(String strKey)从strKey的字条生成一个Key
*
* String getEncString(String strMing)对strMing进行加密,返回String密文
* String getDesString(String strMi)对strMin进行解密,返回String明文
*
*byte[] getEncCode(byte[] byteS)byte[]型的加密
*byte[] getDesCode(byte[] byteD)byte[]型的解密
*/
public class EncryptionPsw {
Key key;
private EncryptionPsw()
{}
public static EncryptionPsw getInstance()
{
EncryptionPsw des=new EncryptionPsw();
des.getKey("sharpcode");
return des;
}
/**
* 根据参数生成KEY
* @param strKey
*/
public void getKey(String strKey) {
try{
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator=null;
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 加密String明文输入,String密文输出
* @param strMing
* @return
*/
public String getEncString(String strMing) {
byte[] byteMi = null;
byte[] byteMing = null;
String strMi = "";
try {
return byte2hex(getEncCode (strMing.getBytes() ) );
// byteMing = strMing.getBytes("UTF8");
// byteMi = this.getEncCode(byteMing);
// strMi = new String( byteMi,"UTF8");
}
catch(Exception e){
e.printStackTrace();
}
finally {
byteMing = null;
byteMi = null;
}
return strMi;
}
/**
* 解密 以String密文输入,String明文输出
* @param strMi
* @return
*/
public String getDesString(String strMi) {
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = "";
try {
return new String(getDesCode(hex2byte(strMi.getBytes()) ));
// byteMing = this.getDesCode(byteMi);
// strMing = new String(byteMing,"UTF8");
}
catch(Exception e) {
e.printStackTrace();
}
finally {
byteMing = null;
byteMi = null;
}
return strMing;
}
/**
* 加密以byte[]明文输入,byte[]密文输出
* @param byteS
* @return
*/
private byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
}
catch(Exception e) {
e.printStackTrace();
}
finally {
cipher = null;
}
return byteFina;
}
/**
* 解密以byte[]密文输入,以byte[]明文输出
* @param byteD
* @return
*/
private byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina=null;
try{
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
}catch(Exception e){
e.printStackTrace();
}finally{
cipher=null;
}
return byteFina;
}
/**
* 二行制转字符串
* @param b
* @return
*/
public static String byte2hex(byte[] b) { //一个字节的数,
// 转成16进制字符串
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++) {
//整数转成十六进制表示
stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
if (stmp.length() == 1)
hs = hs + "0" + stmp;
else
hs = hs + stmp;
}
return hs.toUpperCase(); //转成大写
}
public static byte[] hex2byte(byte[] b) {
if((b.length%2)!=0)
throw new IllegalArgumentException("长度不是偶数");
byte[] b2 = new byte[b.length/2];
for (int n = 0; n < b.length; n+=2) {
String item = new String(b,n,2);
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个进制字节
b2[n/2] = (byte)Integer.parseInt(item,16);
}
return b2;
}
public static void main(String[] args){
System.out.println("admin&123");
EncryptionPsw des=EncryptionPsw.getInstance();
String strEnc = des.getEncString("admin&123");//加密字符串,返回String的密文
System.out.println(strEnc);
String strDes = des.getDesString(strEnc);//把String 类型的密文解密
System.out.println(strDes);
new EncryptionPsw();
}
}
|
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class CreateImgWaterMark {
public static void main(String[] args) {
new CreateImgWaterMark().pressText("www.sharpcode.org***", "C:\\a.jpg");
}
/**
* 打印文字水印图片
*
* @param pressText
* --文字
* @param targetImg --
* 目标图片
*/
public static void pressText(String pressText, String targetImg) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
System.out.println(image.getType());
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
// String s="www.143zh.com";
g.setColor(Color.RED);
Font f = new Font("微软雅黑", 20, 50);
g.setFont(f );
g.drawString(pressText, wideth/2,height-50);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
/**
* 把图片印刷到图片上
*
* @param pressImg --
* 水印文件
* @param targetImg --
* 目标文件
* @param x
* @param y
*/
public final static void pressImage(String pressImg, String targetImg,
int x, int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
// 水印文件
File _filebiao = new File(pressImg);
Image src_biao = ImageIO.read(_filebiao);
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.drawImage(src_biao, wideth - wideth_biao - x, height
- height_biao - y, wideth_biao, height_biao, null);
// /
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Runtime.InteropServices;
//Download by http://www.codefans.net
namespace USB
{
public partial class USB : Form
{
public USB()
{
InitializeComponent();
}
public const int WM_DEVICECHANGE = 0x219;
public const int DBT_DEVICEARRIVAL = 0x8000;
public const int DBT_CONFIGCHANGECANCELED = 0x0019;
public const int DBT_CONFIGCHANGED = 0x0018;
public const int DBT_CUSTOMEVENT = 0x8006;
public const int DBT_DEVICEQUERYREMOVE = 0x8001;
public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
public const int DBT_DEVICEREMOVEPENDING = 0x8003;
public const int DBT_DEVICETYPESPECIFIC = 0x8005;
public const int DBT_DEVNODES_CHANGED = 0x0007;
public const int DBT_QUERYCHANGECONFIG = 0x0017;
public const int DBT_USERDEFINED = 0xFFFF;
// 逻辑卷标
public const int DBT_DEVTYP_VOLUME = 0x00000002;
// private LockScreen Ls = new LockScreen();
public string ID="";
public string Value;
public string[] item;
[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_VOLUME
{
public int dbcv_size;
public int dbcv_devicetype;
public int dbcv_reserved;
public int dbcv_unitmask;
}
protected override void WndProc(ref Message m)
{
try
{
if (m.Msg == WM_DEVICECHANGE)
{
switch (m.WParam.ToInt32())
{
case WM_DEVICECHANGE:
break;
case DBT_DEVICEARRIVAL://U盘有插入
this.timer1.Enabled = true;
DriveInfo[] s = DriveInfo.GetDrives();
foreach (DriveInfo DriveI in s)
{
if (DriveI.DriveType == DriveType.Removable)
{
// Ls.Show();
// this.Hide();
// MessageBox.Show("sss");
break;
}
int devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
DEV_BROADCAST_VOLUME vol;
vol = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
ID=vol.dbcv_unitmask.ToString("x");
this.Text = IO(ID);
this.Tag = IO(ID);
//if (item.Length ==0||IO(ID)!=this.Tag.ToString ())
//{
//}
}
this.label1.Text = this.Text;
}
break;
case DBT_CONFIGCHANGECANCELED:
break;
case DBT_CONFIGCHANGED:
break;
case DBT_CUSTOMEVENT:
break;
case DBT_DEVICEQUERYREMOVE:
break;
case DBT_DEVICEQUERYREMOVEFAILED:
break;
case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
DriveInfo[] I = DriveInfo.GetDrives();
foreach (DriveInfo DrInfo in I)
{
int devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
DEV_BROADCAST_VOLUME vol;
vol = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
ID = vol.dbcv_unitmask.ToString("x");
this.Text = IO(ID) + "盘退出!\n";
}
this.label1.Text += this.Text;
// MessageBox.Show("U盘已经卸载", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
break;
case DBT_DEVICEREMOVEPENDING:
break;
case DBT_DEVICETYPESPECIFIC:
break;
case DBT_DEVNODES_CHANGED:
break;
case DBT_QUERYCHANGECONFIG:
break;
case DBT_USERDEFINED:
break;
default:
break;
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
base.WndProc(ref m);
}
private void USB_Load(object sender, EventArgs e)
{
}
public string IO(string ff)
{
switch (ff)
{
case "1":
Value="A:";
break;
case "2":
Value= "B:";
break;
case "4":
Value= "C:";
break;
case "8":
Value= "D:";
break;
case "10":
Value= "E:";
break;
case "20":
Value= "F:";
break;
case "40":
Value= "G:";
break;
case "80":
Value= "H:";
break;
case "100":
Value= "I:";
break;
case "200":
Value= "J:";
break;
case "400":
Value= "K:";
break;
case "800":
Value= "L:";
break;
case "1000":
Value= "M:";
break;
case "2000":
Value= "N:";
break;
case "4000":
Value= "O:";
break;
case "8000":
Value= "P:";
break;
case "10000":
Value= "Q:";
break;
case "20000":
Value= "R:";
break;
case "40000":
Value= "S:";
break;
case "80000":
Value= "T:";
break;
case "100000":
Value= "U:";
break;
case "200000":
Value= "V:";
break;
case "400000":
Value= "W:";
break;
case "800000":
Value= "X:";
break;
case "1000000":
Value= "Y:";
break;
case "2000000":
Value= "Z:";
break;
default: break;
}
return Value;
}
private void timer1_Tick(object sender, EventArgs e)
{
// this.Text = ID;
}
private void USB_Load_1(object sender, EventArgs e)
{
}
}
}
|