`
收藏列表
标题 标签 来源
web service 验证码
使用方面:对于用户注册可适用,用于胖客户端。
后台生成图像,使用web service或scoket方式发送至客户端。
代码:
package com.duduli.li;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class ImageC2 {


//生成验证码图片	
	public OutputStream create() throws Exception {
		OutputStream out = new ByteArrayOutputStream();
		String yanzhengma = "";
		int[] a = null;
		// 大小
		int width = 60;
		int height = 30;
		// 声明一个图片类型rgb
		BufferedImage bi = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_BGR);
		// 获取画笔
		Graphics g = bi.getGraphics();
		// 背景色
		g.setColor(Color.WHITE);
		// 画
		g.fillRect(0, 0, width, height);
		// 字体
		g.setFont(new Font("黑体", Font.BOLD, 18));
		// 写一个字符到bi
		Random r = new Random();
		for (int i = 0; i < 4; i++) {
			// 生成随机数
			int code = r.nextInt(10);// 0---9之间
			// 画笔随机色
			g.setColor(new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256)));
			// 写出字符
			g.drawString("" + code, i * 15, 10 + r.nextInt(20));
			yanzhengma += String.valueOf(code);
		}
		// 干扰线
		for (int i = 0; i < 12; i++) {
			g.setColor(new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256)));
			// 画线
			g.drawLine(r.nextInt(60), r.nextInt(30), r.nextInt(60),
					r.nextInt(30));
		}
		g.dispose();// 图片生成

		ImageIO.write(bi, "JPEG", out);// 设置路径为e:盘下的a.jpg


		System.out.println("结果为:"+yanzhengma);
		
		return out;
	}

// outputstream转成inputstream
	 public ByteArrayInputStream parse(OutputStream out) throws Exception
	    {
	        ByteArrayOutputStream   baos=new   ByteArrayOutputStream();
	        baos=(ByteArrayOutputStream) out;
	        ByteArrayInputStream swapStream = new ByteArrayInputStream(baos.toByteArray());
	        return swapStream;
	    }

//试用base64对流进行转码	
	public String GetImageStr(InputStream in) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//		String imgFile = "d:\\test.txt";// 待处理的图片
//		InputStream in = null;
		byte[] data = null;
		// 读取图片字节数组
		try {
//			in = new FileInputStream(imgFile);
			data = new byte[in.available()];
			in.read(data);
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// 对字节数组Base64编码
		BASE64Encoder encoder = new BASE64Encoder();
		return encoder.encode(data);// 返回Base64编码过的字节数组字符串
	}
	
	
	
//查看并测试图片转码情况,模拟客户端图片显示	
	public static boolean GenerateImage(String imgStr) {// 对字节数组字符串进行Base64解码并生成图片
		if (imgStr == null) // 图像数据为空
			return false;
		BASE64Decoder decoder = new BASE64Decoder();
		try {
			// Base64解码
			byte[] b = decoder.decodeBuffer(imgStr);
			for (int i = 0; i < b.length; ++i) {
				if (b[i] < 0) {// 调整异常数据
					b[i] += 256;
				}
			}
			// 生成jpeg图片
			String imgFilePath = "d:\\222.jpg";// 新生成的图片
			OutputStream out = new FileOutputStream(imgFilePath);
			out.write(b);
			out.flush();
			out.close();
			return true;
		} catch (Exception e) {
			return false;
		}
	}
	
	public static void main(String[] args) throws Exception {
		ImageC2 i = new ImageC2();
//		System.out.println(i.GetImageStr(i.parse(i.create())));
		
		GenerateImage(i.GetImageStr(i.parse(i.create())));
	}
}
java平衡二叉树 Java平衡二叉树
package com.neu.util;
public class BTNode {
    int data;
    BTNode left;
    BTNode right;
    
    BTNode(){}
    BTNode(int val){
        data = val;
    }
    BTNode(int val,BTNode leftChild,BTNode rightChild){
        data = val;
        left = leftChild;
        right = rightChild;
    }
    public String toString()
    {
        Integer data1= new Integer(data);
        return data1.toString();
    }

}


package com.neu.util;

	public class BTree {
	    
	    public BTNode root;//树的根结点
	    private int count;//树的结点个数
	        
	    /** Creates a new instance of BTree */
	    public BTree() {
	        root = null;
	        count = 0;
	    }
	    public   BTNode insert(BTNode ref,int val)//插入建立二叉树
	    {
	        if(ref == null){
	            count++;
	            return new BTNode(val);
	        }
	        else{
	            if(ref.data>val)
	                ref.left = insert(ref.left,val);
	            else
	                ref.right = insert(ref.right,val);
	            return ref;
	        }
	    }
	    public void insert(int val)
	    {
	        root = insert(root,val);
	    }
	    
	    public int size(){
	        return count;
	    }
	    //将二叉树转为按中序排列的一条链
	    BTNode createChain(BTNode root){
	        if(root!= null){
	            root.right = createChain(root.right); //对右子树递归  
	            if(root.left != null){
	                BTNode oldRoot = root;
	                BTNode ref = root = createChain(root.left); //对左子树递归,根指向最左结点
	                oldRoot.left = null;
	                while(ref.right != null)
	                    ref = ref.right;
	                ref.right = oldRoot;
	            }
	        }
	        return root;
	    } 
	    //将链转为平衡二叉树
	    BTNode createTree(BTNode root,int n){
	        if(n> 2){
	            int m = (n-1)/2;
	            BTNode oldRoot = root;
	            BTNode ref = root;
	            for(int i = 1;i<m;i++)
	                ref = ref.right;
	            root = ref.right;   //指向第[n/2]个结点,即将根指向链的中间结点
	            ref.right = null;  //根的左右结点都置空
	            root.left = createTree(oldRoot,m);
	            root.right = createTree(root.right,n-m-1);
	        }
	        return root;
	    }
	    
	    public String getData() {
	       if(this.root == null)  return "";
	       Integer n = new Integer(root.data);
	       return n.toString();
	    }  
	
	
	public static void inorder(BTNode r){       //中序排列
		if(r != null){
		   inorder(r.left);  
		   System.out.print(r.toString() + "  ");
		   inorder(r.right);
		} 
	}

	public void display(){
		if(root!=null){
			System.out.print("排序:");
			inorder(root);
		}else{
			System.out.println("二叉树为空!");
		}
	}  
	
	public static void main(String[] args){
		BTNode node = new BTNode(10);
		BTree bt =new BTree();   
		int arr[]={5,12,20,2,14,1};
		for(int i=0;i<arr.length;i++)    {    
			bt.insert(arr[i]);    
		 }
		System.out.println();
		bt.display();

	}
}
spring获取xml配置文件几种方法
【1】File file = new File("fileSystemConfig.xml");
Resource resource = new FileSystemResource(file);
BeanFactory beanFactory = new XmlBeanFactory(resource);

【2】Resource resource = new ClassPathResource("classpath.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);

【3】ClassPathXmlApplicationContext:ApplicationContext实现,从classpath获取配置文件;
BeanFactory beanFactory = new ClassPathXmlApplicationContext("classpath.xml");

【4】FileSystemXmlApplicationContext:ApplicationContext实现,从文件系统获取配置文件。
BeanFactory beanFactory = new FileSystemXmlApplicationContext("fileSystemConfig.xml");
java编译运行。非IDE
c:\Users\Administrator\Desktop\WWServiceCom\5>javac -cp ./cxf-2.6.2.jar ClientSe
rvice.java

c:\Users\Administrator\Desktop\WWServiceCom\5>java -Djava.ext.dirs=. -cp . Clien
tService
Sep 5, 2012 7:50:45 PM org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNam
es
java使用jnative对dll进行调用 java调用dll
package com.duduli.li;

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlock;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;

public class TestNative {
//	static{
//		System.load("c://Users//Administrator//Desktop//WWServiceCom//JNativeCpp.dll");
//	}
	public static void main(String[] args) {
//        TestNative test = new TestNative();
        JNative jn = null;
        String str = "";
        try {
//        	System.load("c://Users//Administrator//Desktop//WWServiceCom//接口dll//WWServiceCom_5.dll");
//        	System.loadLibrary("WWServiceCom_5");
//            jn = new JNative("WWServiceCom_5","ExecSQLNoField1");
//        	System.loadLibrary("WWServiceCom_4");
//            jn = new JNative("WWServiceCom_4","ExecSQLNoField");
//        	System.loadLibrary("WWServiceCom_6");
//            jn = new JNative("WWServiceCom_6","Test");
//        	 System.loadLibrary("WWServiceCom_7");
//             jn = new JNative("WWServiceCom_7","Test2");
//             System.loadLibrary("WWServiceCom_8");
//             jn = new JNative("WWServiceCom_8","Test2");
//            System.loadLibrary("WWServiceCom_9");
//            jn = new JNative("WWServiceCom_9","Test2");
//        	 System.loadLibrary("WWServiceCom_10");
//            jn = new JNative("WWServiceCom_10","Test2");
            System.loadLibrary("WWServiceCom_12");
            jn = new JNative("WWServiceCom_12","Test2");
            jn.setRetVal(Type.STRING);
//            int i = 0;
//            jn.setParameter(i++, "afjkfjekj");
//            jn.setParameter(i++, "afjkfjekj");
            jn.setParameter(0, "aaa");
            jn.setParameter(1, "bbb");
            System.out.println("调用的DLL文件名为:"+jn.getDLLName()); 
            System.out.println("调用的方法名为:"+jn.getFunctionName());
            jn.invoke();
            
            str = jn.getRetVal();
            System.out.println(str);

        } catch (NativeException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }finally{
            if(null != jn){
                try {
                    jn.dispose();//
                    jn = null;
                } catch (NativeException e) {
                    jn = null;
                } catch (IllegalAccessException e) {
                    jn = null;
                }
            }
        }
    }
}
java使用jna调用dll java调用dll
package com.duduli.li;

import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;

public interface JnaUseDelphiDll extends StdCallLibrary{
	
	//加载动态链接库,把库dll文件默认放到系统C盘window目录下的system32文件夹下
//	JnaUseDelphiDll instance = (JnaUseDelphiDll)Native.loadLibrary("WWServiceCom_5", JnaUseDelphiDll.class);
//	JnaUseDelphiDll instance = (JnaUseDelphiDll)Native.loadLibrary("WWServiceCom_6", JnaUseDelphiDll.class);
	JnaUseDelphiDll instance = (JnaUseDelphiDll)Native.loadLibrary("WWServiceCom_12", JnaUseDelphiDll.class);


	//对应动态链接库中的方法, 要注意的是 这里的方法必须要和链接库(dll文件)对应的方法名一致
	public String Test2(String s1,String s2);
}



调用方法:


package com.duduli.li;

import com.sun.jna.Structure;
import com.sun.jna.ptr.ByteByReference;


public class TestJNA extends Structure{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JnaUseDelphiDll jnaDemo = JnaUseDelphiDll.instance;
		System.out.println(jnaDemo.Test2("select top 1 a0101,a0107 from a01","bb"));
		
	}

}
Java对文件进行筛选 文件按筛选
public   class  FileExtensionFileFilter  implements  FileFilter {    
 
      private  String extension;    
 
      public  FileExtensionFileFilter(String extension) {
           this .extension = extension;
     }    
 
      /*
      * Pass the File if it has the extension.
      */
      public   boolean  accept(File file) {
           // Lowercase the filename for easier comparison
          String lCaseFilename = file.getName().toLowerCase();    
 
           return  (file.isFile() &&
                       (lCaseFilename.indexOf(extension) >  0 )) ?  true : false ;
     }
}
Global site tag (gtag.js) - Google Analytics