- 浏览: 205230 次
- 性别:
- 来自: 青岛
最新评论
-
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 5306# 下载 http://www-01.ibm.com ... -
几个小算法题
2011-04-03 13:40 1150/** * 数字三角 * 当 n == 7 时输 ... -
获取 SkyDrive 的文件外链固定地址
2011-04-03 11:47 1464javascript: var id = window.se ... -
常用知识记录
2011-04-02 17:25 1635sql 部分 1. 查询已创建的数据库 // ... -
Java 与 C++ 在表达式运算上的一点异同
2010-12-25 00:24 12961. java public class Main{ ... -
SWFUpload+commons-fileupload 上传文件
2010-12-17 19:20 11021说明:使用SWFUpload 上传文件,可在客户端校验文件大小 ... -
在 ubuntu 下搭建 ftp 服务端 [ vsftpd ]
2010-11-16 20:11 1904vsftpd 1. 安装 ftp 服务端 ... -
Tomcat 常用操作
2010-11-16 13:47 2683tomcat 常用操作 1. 安装 tomcat 1.1 ... -
在 ubuntu 下搭建 svn 服务端
2010-11-13 20:43 3019参考: http://wiki.ubunt ... -
正则表达式常用功能代码
2010-11-02 19:37 13411. 校验 /** * 校验 email * @pa ... -
三种常见的排序方法[选择,冒泡,快速]
2010-10-17 17:51 1122public class Main{ public ... -
Filter 常用代码
2010-10-12 22:50 12311. 压缩 Filter // GZIPFilter.jav ... -
log4j 常用配置代码
2010-10-12 14:35 1403Reference library: commons-log ... -
计算组合数并输出
2010-09-14 09:35 5624问题描述:计算一组数据的组合数并输出 例如:输入1,2,3 ... -
native2ascii的 java实现
2010-09-13 13:49 3898描述:简单模拟JDK自带的 native2ascii.exe ... -
计算全排列
2010-09-13 09:04 1610问题描述:计算一组数 ... -
apache commons dbcp 学习与使用
2010-06-18 20:37 1609类结构 org |_demo |_d ... -
一个关于组合数的问题
2010-05-03 20:09 11881. 题目来源 未解之谜俱 ... -
Java常用功能代码[ 2 ]
2010-04-27 17:35 14151. 加载所有 jar 包中同名的配置文件 /** * ... -
程序员学习之路
2010-04-14 20:59 15031. JavaScript 1.1 全方位、多角度学习Jav ...
相关推荐
在“Java常用源程序代码”这个压缩包中,我们能够找到一系列与Java编程相关的源代码文件,这些文件被精心组织在不同的文件夹中,每个文件夹都代表着一个特定的主题或功能领域。通过深入研究这些代码,我们可以学习到...
本集合主要关注的是Java和Spring框架在实际开发中的常见应用和技巧。 1. **Spring框架概述**:Spring是一个开源的Java平台,它提供了全面的编程和配置模型,用于构建现代Java应用。Spring的核心特性包括依赖注入...
20个开发人员非常有用的Java功能代码
本压缩包“java常用代码”集合了一系列基础到进阶的Java代码示例,涵盖了多个关键领域,有助于初学者快速掌握Java编程的核心概念。 1. **遗产算法**:在Java中,继承是面向对象特性之一,它允许一个类(子类)继承...
各种Java功能代码,Java访问XML文件,Java数据库访问技术,Java对工作方式日期的处理
在"Java常用代码整理"这个主题中,我们可以探讨多个Java编程中的关键知识点,包括基础语法、面向对象特性、异常处理、集合框架、IO流、多线程、网络编程以及实用工具类等。 1. **基础语法**:Java的基础语法包括...
这个名为“Java基本常用代码示例”的资源集包含了Java程序设计中的一些基础和常见代码片段,对于初学者或需要复习基本概念的开发者来说非常有用。下面我们将深入探讨这些标签所涵盖的Java基本知识点。 1. **数据...
6. **异常处理**:Java中的异常是程序运行时的错误,使用try-catch-finally语句块捕获和处理异常,可以提高程序的健壮性。 7. **集合框架**:Java集合框架包括List(ArrayList、LinkedList)、Set(HashSet、...
在“java常用实验代码”这个文档中,我们可以看到一系列与Java编程相关的实践项目,旨在帮助学习者深入理解Java的核心概念和技术。以下是这些实验代码所涵盖的知识点的详细解释: 1. **接口定义及实现**: Java...
"100多个非常有用的Java功能代码"集合就是这样一个资源库,它包含了大量经过验证、优化的代码示例,可以帮助程序员快速解决实际问题。这个压缩包可能包含了从基础操作到高级特性的广泛代码示例,对于学习和提升Java...
本文主要介绍了四种常用的 Java 代码扫描工具,并对它们的功能、特性等方面进行了分析和比较。这些工具分别是 Checkstyle、FindBugs、PMD 和 Jtest。静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的...
"Java 中常用的代码汇总" Java 是一种广泛应用的编程语言,随着项目的开发和维护,积累了大量实用的代码。下面是 20 个常用的 Java 代码,都是别人项目中使用过的代码,为开发者提供了有价值的参考。 字符串与整型...
Java 中常用的代码汇总 本文总结了 20 个常用的 Java 代码,涵盖了字符串处理、文件操作、日期处理、数据库操作等多个方面。这些代码都是在实际项目中使用过的,具有很高的实用价值。 字符串处理 1. 字符串和整型...
在Java中,类库是预编译的代码集合,包含了各种功能模块,可以帮助开发者快速构建应用程序,提高开发效率。本资源包含了一个常用的Java类库的源代码,这对于Java程序员来说是一份宝贵的学习和参考材料。 首先,Java...
在这个"java工程常用代码工具类"中,我们可以找到几个关键功能的实现,包括Jedis、FTP上传、JSON格式化、RESTful风格接口以及HTTP工具。下面将分别详细介绍这些知识点。 1. **Jedis**: Jedis是Java语言编写的...
在Java中,要连接到SQL Server数据库,我们需要Microsoft提供的JDBC驱动,如`sqljdbc4.jar`或`mssql-jdbc.jar`。这些驱动实现了Java.sql接口,允许Java应用程序通过SQL语句执行数据库操作。例如,创建数据库连接、...
这个"java常用代码工具包"中的"新建文件夹"可能包含了上述功能的实现代码或配置文件。使用时,开发者需要将这些代码导入到项目中,通过引用和调用来利用这些工具类。同时,阅读和理解这些工具类的源代码也是一种学习...
本项目“常用单位换算器 Java源代码”提供了一个实用的工具,能够帮助用户进行长度、时间、温度等常见物理量的单位转换。下面将详细介绍这个项目中的关键知识点。 首先,我们来探讨Java编程基础。Java是一种面向...