- 浏览: 201715 次
- 性别:
- 来自: 青岛
最新评论
-
sunysh005:
界面太丑了,功能没有问题
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
liwh1989 写道
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
...
SWFUpload+commons-fileupload 上传文件 -
liwh1989:
SWFUpload+commons-fileupload 上传文件 -
貌似掉线:
已用上。多谢!
native2ascii的 java实现
1. 屏幕截图
public static void main(String[] args)throws Exception { String filename = "d:\\Temp\\screen.png"; // 获取屏幕尺寸 Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle rectangle = new Rectangle(dimension); // 创建图像 BufferedImage image = new Robot().createScreenCapture(rectangle); // 保存到磁盘 // @see ImageIO#getWriterFormatNames(); ImageIO.write(image, "png", new File(filename)); }
2. 缩放图像
package org.demo.common; import java.awt.Container; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MediaTracker; import java.awt.RenderingHints; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * 创建缩略图 * @author * @date 2010-6-19 * @file org.demo.common.ImageThumbnail.java */ public class ImageThumbnail { /** * @param args */ public static void main(String[] args)throws Exception { String inFilename = "d:\\Temp\\demo1.png"; String outFilename = "d:\\Temp\\demo2.png"; createThumbnail(inFilename, outFilename, 800, 600, 0.75f); } /** * 创建缩略图 * @param inFilename * @param outFilename * @param thumbWidth * @param thumbHeight * @param quality * [0.0,1.0] * @return */ public static void createThumbnail( String inFilename,String outFilename, int thumbWidth,int thumbHeight,float quality) throws IOException,InterruptedException{ // 加载图像 Image image = Toolkit.getDefaultToolkit().getImage(inFilename); // 创建图像追踪器 MediaTracker mediaTracker = new MediaTracker(new Container()); mediaTracker.addImage(image, 0); /** !必须等图像完全加载到内存之后才能执行后续操作! */ mediaTracker.waitForID(0); System.out.println("isErrorAny=" + mediaTracker.isErrorAny()); // 计算等比例缩放的实际 宽高值 double thumbRatio = thumbWidth/thumbHeight; int imageWidth = image.getWidth(null); int imageHeight = image.getHeight(null); double imageRatio = (double)imageWidth/imageHeight; if (thumbRatio < imageRatio){ // --> height thumbHeight = (int)(thumbWidth/imageRatio); } else { // --> width thumbWidth = (int)(thumbHeight * imageRatio); } // 创建内存缩略图 BufferedImage bufferedImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = bufferedImage.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g2d.drawImage(image, 0, 0, thumbWidth, thumbHeight, null); // 将内存缩略图 写入 文件 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename)); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage); param.setQuality(quality,false); encoder.setJPEGEncodeParam(param); encoder.encode(bufferedImage); out.close(); } }
3. 设置 http 代理
package org.demo.common; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 设置 http 代理 * @author * @date 2010-6-19 * @file org.demo.common.HttpProxy.java */ public class HttpProxy { public static void main(String[] args)throws Exception { // 设置 http 代理 setHttpProxy("206.224.254.10", "80", "", ""); // 访问一个网页 URL url = new URL("http://www.7daili.com/"); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); InputStreamReader reader = new InputStreamReader(in,"utf-8"); BufferedReader bf = new BufferedReader(reader); StringBuilder sb = new StringBuilder(1024); String line = null; while((line = bf.readLine()) != null){ sb.append(line).append('\n'); } bf.close(); // 取出当前的客户端ip ip格式:[您的IP:12.34.56.78(地理位置)] String regex = "(您的IP\\:.*\\))\\s"; Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(sb); if (matcher.find()){ System.out.println("--> " + matcher.group(1)); } else { System.out.println("--> " + "未找到ip"); } } /** * 设置 http 代理 * @param host * @param port * @param user * @param pass */ public static void setHttpProxy(String host,String port, String user,String pass){ System.getProperties().setProperty("http.proxyHost", host); System.getProperties().setProperty("http.proxyPort", port); System.getProperties().setProperty("http.proxyUser", user); System.getProperties().setProperty("http.proxyPassword", pass); } }
4. 解析 XML 文件
package org.demo.common; import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * 解析 XML 文件 * @author * @date 2010-6-21 * @file org.demo.common.XmlTools.java */ public class XmlTools { /** * @param args */ public static void main(String[] args)throws Exception { byte[] bytes = getXml().getBytes(); ByteArrayInputStream in = new ByteArrayInputStream(bytes); // -- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(in); Element root = document.getDocumentElement(); // -- 获得所有的 student 元素 List<Element> students = getChildren(root, "student"); for(int i=0; i < students.size(); i++){ Element student = students.get(i); String id = student.getAttribute("id"); // -- 获得 student 元素的所有子元素 NodeList nodeList = student.getChildNodes(); System.out.print("[id:" + id ); for(int j=0; j < nodeList.getLength(); j++){ Node node = nodeList.item(j); if(node.getNodeType() == Node.ELEMENT_NODE){ System.out.print("," + node.getNodeName() + ":" + node.getTextContent()); } } System.out.println("]"); } in.close(); } /** * 获取子元素 * @param parent * @param name * @return */ public static List<Element> getChildren(Element parent,String name){ List<Element> list = new ArrayList<Element>(); Node node = parent.getFirstChild(); while(node != null){ if(node instanceof Element){ if(name.equals(((Element)node).getTagName())){ list.add((Element)node); } } node = node.getNextSibling(); } return list; } /** * 创建一个 XML 格式的 String * @return */ public static String getXml(){ // -- StringBuilder sb = new StringBuilder(); sb.append("<?xml version='1.0' encoding='utf-8'?>"); sb.append("<root>"); sb.append(" <student id='01'>"); sb.append(" <name>Zhangs</name>"); sb.append(" <grade>A</grade>"); sb.append(" <age>20</age>"); sb.append(" </student>"); sb.append(" <student id='02'>"); sb.append(" <name>Lis</name>"); sb.append(" <grade>B</grade>"); sb.append(" <age>18</age>"); sb.append(" </student>"); sb.append("</root>"); return sb.toString(); } }
5. 创建 zip 文件
package org.demo.common; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashSet; import java.util.Set; import java.util.zip.CRC32; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 创建 zip 文档 * @author * @date 2010-6-20 * @file org.demo.common.ZipTools.java */ public class ZipTools { public static void main(String[] args)throws Exception { // -- String base = "D:/workspace/eclipse_wk/myProject/src/src-java/org/"; String[] files = {"demo"}; createZipFile(base, "tmp.zip", files); } /** * 创建一个压缩文件 * @param base * The root path end with '/' * @param zipName * @param files * The files in base directory. * @return 该压缩文件的绝对路径 */ public static String createZipFile(String base,String zipName,String[] files){ zipName = base + zipName; ZipOutputStream zipout = null; try{ zipout = new ZipOutputStream(new FileOutputStream(zipName)); // 去除重复的 file Set<String> set = new HashSet<String>(); for(String fname : files){ set.add(fname); } for(String fname : set){ zip(zipout,new File(base + fname),""); } } catch(Exception e){ e.printStackTrace(); } finally{ try{ if(zipout != null){ zipout.flush(); zipout.close(); } }catch(Exception e){ e.printStackTrace(); } } return zipName; } /** * 将文件 file 写入到 zip 输出流中 * @param out * @param file * @param base */ private static void zip(ZipOutputStream out,File file,String base) throws IOException{ if (base == null){ base = ""; } base += file.getName(); if(file.isDirectory()){ base += '/'; ZipEntry entry = new ZipEntry(base); // 创建一个目录条目 [以 / 结尾] out.putNextEntry(entry); // 向输出流中写入下一个目录条目 File[] fileArr = file.listFiles(); // 递归写入目录下的所有文件 for(File f : fileArr){ zip(out,f,base); } } else if (file.isFile()){ ZipEntry entry = new ZipEntry(base); // 创建一个文件条目 entry.setCrc(getCRC32(file)); entry.setMethod(ZipEntry.STORED); entry.setCompressedSize(file.length()); // -- out.putNextEntry(entry); // 向输出流中写入下一个文件条目 FileInputStream in = new FileInputStream(file); // 写入文件内容 byte[] buf = new byte[1024]; int count; while((count = in.read(buf)) != -1){ out.write(buf,0,count); } in.close(); } } /** * 计算 file 的 CRC-32 校验和 * @param file * @return */ public static long getCRC32(File file)throws IOException{ // -- CRC32 crc = new CRC32(); // -- BufferedInputStream bins = new BufferedInputStream(new FileInputStream(file)); byte[] buf = new byte[1024]; int count; // -- while((count = bins.read(buf)) != -1){ crc.update(buf, 0, count); } bins.close(); return crc.getValue(); } }
6. 调整数组大小
package org.demo.common; import java.lang.reflect.Array; /** * 调整数组大小 * @author * @date 2010-6-21 * @file org.demo.common.ArrayTools.java */ public class ArrayTools { /** * @param args */ public static void main(String[] args) { int[] arr = new int[10]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; arr[6] = 7; // 调整数组大小 int[] tmp = (int[])arrayResize(arr, 7); // 输出新数组信息 System.out.println("length=" + tmp.length); System.out.print("["); for(int i=0; i < tmp.length; i++){ System.out.print(tmp[i]); if(i < tmp.length -1){ System.out.print(","); } } System.out.println("]"); } /** * 调整数组的大小 * @param oldArray * @param newSize */ public static Object arrayResize(Object oldArray,int newSize){ // -- 数组大小 int oldSize = Array.getLength(oldArray); newSize = Math.min(oldSize, newSize); // -- 数组内 元素的类型 Class<?> type = oldArray.getClass().getComponentType(); // -- 新建数组 Object newArray = Array.newInstance(type, newSize); System.arraycopy(oldArray, 0, newArray, 0, newSize); return newArray; } }
7. 数组 -> Map
package org.demo.common; import java.util.Map; import org.apache.commons.lang.ArrayUtils; // -- // library dependencies // * commons-lang-2.5.jar // -- /** * Array to Map * @author * @date 2010-6-20 * @file org.demo.common.Array2Map.java */ public class Array2Map { @SuppressWarnings("unchecked") public static void main(String[] args) { String[][] arr = new String[][]{{"a","aa"},{"b","bb"}}; Map map = ArrayUtils.toMap(arr); System.out.println("map=" + map); } }
8. 使用 XSLT 转换 XML
package local; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.xml.sax.InputSource; /** * 使用 XSLT 转换 XML * @author * @date 2010-7-8 * @file local.XsltTools.java */ public class XsltTools { /** * 测试 * @param args * @throws IOException * @throws TransformerException */ public static void main(String[] args) throws Exception { String xsl = "D:/local/transform.xsl"; String xml = "D:/local/customer.xml"; InputStream in = new FileInputStream(xsl); // 构建输入输出流 ByteArrayOutputStream out = new ByteArrayOutputStream(); Source from = new StreamSource(new File(xml)); Result to = new StreamResult(out); // 构建转换器并执行转换 Transformer transformer = getTransformer(in); transformer.transform(from, to); // 输出转换后结果 String result = out.toString(); System.out.println(result); } /** * 创建并返回 transformer * @param in_xsl * @return a Transformer instance or null. */ public static Transformer getTransformer(InputStream in_xsl){ Transformer transformer = null; try { SAXSource xsl = new SAXSource(new InputSource(in_xsl)); transformer = TransformerFactory.newInstance() .newTransformer(xsl); } catch (Exception e) { e.printStackTrace(); } return transformer; } }
// customer.xml
<?xml version="1.0" encoding="utf-8"?> <mysql> <customer> <key>001</key> <firstName>Zhang</firstName> <lastName>san</lastName> <comment>This is a comment</comment> </customer> </mysql>
// transform.xsl
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/mysql"> <db2> <xsl:for-each select="customer"> <client id="{key}"> <name><xsl:value-of select="concat(firstName,lastName)"/></name> <note><xsl:value-of select="comment"/></note> </client> </xsl:for-each> </db2> </xsl:template> </xsl:stylesheet>
// 输出结果
9. 类型转换
/** * 类型转换: String -> type * @param <T> * @param value * @param type * @return */ @SuppressWarnings("unchecked") public <T>T typeConvert(String value,Class<T> type){ PropertyEditor pe = PropertyEditorManager.findEditor(type); pe.setAsText(value); return (T)pe.getValue(); }
10. java 计算日期差
/** * 计算日期差 * @param start * @param end * @return */ public static long subtract(Date start,Date end){ // 先个自计算出距离 1970-1-1 的日期差,然后相减 long one_day = 24*60*60*1000; long stime = start.getTime(); long etime = end.getTime(); long sdays = stime/one_day; long edays = etime/one_day; // 若 start < 1970-1-1,则日期差了一天,需要修正 if (stime < 0){ sdays--; } // 若 end < 1970-1-1,则日期差了一天,需要修正 if (etime < 0){ edays--; } return edays - sdays; }
11. END
发表评论
-
ubuntu 里安装 db2
2011-04-11 16:17 5246# 下载 http://www-01.ibm.com ... -
几个小算法题
2011-04-03 13:40 1114/** * 数字三角 * 当 n == 7 时输 ... -
获取 SkyDrive 的文件外链固定地址
2011-04-03 11:47 1436javascript: var id = window.se ... -
常用知识记录
2011-04-02 17:25 1605sql 部分 1. 查询已创建的数据库 // ... -
Java 与 C++ 在表达式运算上的一点异同
2010-12-25 00:24 12581. java public class Main{ ... -
SWFUpload+commons-fileupload 上传文件
2010-12-17 19:20 10960说明:使用SWFUpload 上传文件,可在客户端校验文件大小 ... -
在 ubuntu 下搭建 ftp 服务端 [ vsftpd ]
2010-11-16 20:11 1869vsftpd 1. 安装 ftp 服务端 ... -
Tomcat 常用操作
2010-11-16 13:47 2636tomcat 常用操作 1. 安装 tomcat 1.1 ... -
在 ubuntu 下搭建 svn 服务端
2010-11-13 20:43 2967参考: http://wiki.ubunt ... -
正则表达式常用功能代码
2010-11-02 19:37 12931. 校验 /** * 校验 email * @pa ... -
三种常见的排序方法[选择,冒泡,快速]
2010-10-17 17:51 1089public class Main{ public ... -
Filter 常用代码
2010-10-12 22:50 11951. 压缩 Filter // GZIPFilter.jav ... -
log4j 常用配置代码
2010-10-12 14:35 1366Reference library: commons-log ... -
计算组合数并输出
2010-09-14 09:35 5579问题描述:计算一组数据的组合数并输出 例如:输入1,2,3 ... -
native2ascii的 java实现
2010-09-13 13:49 3858描述:简单模拟JDK自带的 native2ascii.exe ... -
计算全排列
2010-09-13 09:04 1575问题描述:计算一组数 ... -
apache commons dbcp 学习与使用
2010-06-18 20:37 1574类结构 org |_demo |_d ... -
一个关于组合数的问题
2010-05-03 20:09 11511. 题目来源 未解之谜俱 ... -
Java常用功能代码[ 2 ]
2010-04-27 17:35 13841. 加载所有 jar 包中同名的配置文件 /** * ... -
程序员学习之路
2010-04-14 20:59 14611. JavaScript 1.1 全方位、多角度学习Jav ...
相关推荐
20个开发人员非常有用的Java功能代码
各种Java功能代码,Java访问XML文件,Java数据库访问技术,Java对工作方式日期的处理
20个开发人员非常有用的Java功能代码(整理版)
100多个非常有用的java功能代码,非常实用!
Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码
比如加密解密类、文件帮助类、ftp二进制与ascii传输方式区别、文件上传类、MD5加密类、文件滤镜类、数据库连接类和操作类、StringHelper字符串处理类、功能计数类等,一共有近30个代码文件,一个Java文件对应一个...
JAVA 正则表达式4种常用的功能.txt JAVA 正则表达式4种常用的功能.txt JAVA 正则表达式4种常用的功能.txt
WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB...
Java开发人员必不可少的代码仓库,包含各种常用的功能,可以大大提高开发效率。
一个详细的java常用API举例。。有代码和说明。希望可以帮助到你。
WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道...
20个开发人员非常有用的Java功能代码
WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB...
hasRecall.java 可以完成回调功能的类 HasStatic.java 一个简单的拥有静态成员的类 hideMember_1.java 成员隐藏示例1 hideMember_2.java 成员隐藏示例2 hideMember_3.java 成员隐藏示例3 hideMember_4.java ...
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...
java常用语句大全JAVA程式-Java程序设计报告自动贩卖机SWITCH&CASE
WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB...
Java EE常用框架 WebService 介绍 基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用 术语 XML. Extensible Markup Language -扩展性标记语言 WSDL – ...
该资料为chm电子书,为开发工作中遇到的工具类、功能代码、技术文档、语法类文档等 现已搜集接近一百个工具类、十多种功能代码、各种第三方类库搜集、springBoot使用文档、四种语法类文档、五个数据对照表、各种设计...