存档

‘编程技术’ 分类的存档

JAVA读取word,excel内容

2010年5月6日 没有评论

上次介绍了用java读取rtf文件格式的内容,那用java语言怎么来读取word文档以及excel中的内容,这些在编程的时候是经常会用到的,java读取word文档及Excel的内容在java的API中没有是没有现成的类或方法的,所以我们要用到一个控件——POI控件:POI控件的下载及配置
下面就是关于java读取word和Excel内容的代码: 阅读全文…

分类: java 标签: ,

POI,PDFBOX,JDOM的下载及在Eclipse中的配置方法

2010年5月6日 没有评论

摘抄自:http://lycoder.javaeye.com/blog/451613
里面介绍得很好,POI的下载及配置,PDFBOX的下载及配置,JDOM的下载及配置都全了。

一、POI
POI是Apache的Jakata项目,POI 代表 Poor Obfuscation Implementation,即不良模糊化实现。POI 的目标就是提供一组 Java API 来使得基于 Microsoft OLE 2 Compound Document 格式的 Microsoft Office 文件易于操作。

下载地址 :http://apache.etoak.com/poi/release/bin/

相关配置 : 阅读全文…

分类: java 标签: ,

java读取rtf文件格式的内容

2010年4月21日 没有评论

java中读取rtf文件格式的内容有事在项目中用到,java API中有相关的类和方法用来读取rtf文件格式的内容,这样利用相关的类和方法就能获取到我们需要的内容,不需要什么插件了呵呵,下面是代码,特记录下:

package textReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.rtf.RTFEditorKit;

public class RtfReader {
    public RtfReader(){
    }
    /**
       * @param filePath 文件路径
     * @return 读出的rtf的内容
     */
    public String getTextFromRtf(String filePath) {
        String result = null;
        File file = new File(filePath);
        RTFEditorKit rtf = new RTFEditorKit().
        try {
            DefaultStyledDocument styledDoc = new DefaultStyledDocument();
            InputStream is = new FileInputStream(file);
            rtf.read(is, styledDoc, 0);
            result = new String(styledDoc.getText(0,styledDoc.getLength()).getBytes("ISO8859_1"));
            //提取文本,读取中文需要使用ISO8859_1编码,否则会出现乱码
        } catch (IOException e) {
            e.printStackTrace();
        } catch (BadLocationException e) {
            e.printStackTrace();
        }
        return result;
    }

}
分类: java 标签: ,

cookie中无法保存中文

2010年4月2日 没有评论

在用cookie保存用户名的时候,发现cookie值不能存中文,报如下错:

 Control character in cookie value, consider BASE64 encoding your value

错误发生在:response.addCookie(cookie);

在以前的编程中也碰到过这样的问题,主要是cookie值里面存在非法参数,如存在”\r\n”、”\n”之类的字符时就报报这样的错,但我就个用户名啊,不存在像这些字符啊,不管,我把cookie值设为一个默认的中文用户名,运行看是否出问题,果不其然,出现同样的错误,结果知道,cookie中不能保存中文。

最后想想把中文转换为UTF-8字符串进行保存应该没问题,即用 URLEncoder.encode(“中文用户名”,”UTF-8″)); 这样把中文用户名转换为UTF-8字符串,运行时通过。在最后接收这个值的时候,用URLDecoder.decode(cookies.getValue(),”UTF-8″);来解码得到我要的中文用户名。
URLEncode及URLDecode在包java.net里面。

分类: java, 编程技术 标签: ,

java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisito

2010年2月3日 没有评论

在做spring AOP的时候,如果没导入相关的包 就会报这个错,下面是:

java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor的解决方法

在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如下lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar
现在把这几个需要的包提供下载地址:spring_AOP

分类: java 标签: ,

快速创建svn(Subversion)服务器

2010年1月28日 没有评论

1、下载绿色版svn(即zip压缩包文件,如我下的是svn-win32-1.5.6.zip,当然下安装版的也可以): http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=74 ,一般选择最新版本。同时也可以下载svn的windows客户端TortoiseSVN http://tortoisesvn.net/downloads

2、解压下载下来的绿色版svn和安装svn的windows客户端TortoiseSVN,按照提示安装就可以,为了能立马看到效果,最好重启下机器,呵呵

3、创建版本库,打开命令窗口(开始->运行,键入cmd,回车),我的svn服务器解压目录为F:\svn;在命令窗口输入:
pushd F:\svn\bin
进入到svn解压目录下的bin目录,建立版本库,如我把版本库安装在:F:\svnrep,首先确认F盘下是否存在svnrep文件夹,没有我们可以在命令窗口键入:
mkdir F:\svnrep
就会创建一个snvrep文件夹,接下来,运行如下命令:
svnadmin create F:\svnrep
这样我们的版本库就创建了,在F:\svnrep下你可以看到自动生成了一些文件及文件夹;同时,你也可以用TortoiseSVN的图形界面来创建,在F:\svnrep文件夹中”右击->TortoiseSVN->Create Repository here”, 同样得到我们需要的结果,如果这文件夹已经创建有了,你再创建,会自动报错。

阅读全文…

分类: 服务器 标签: ,

js对cookie的写入,读取及删除

2010年1月7日 没有评论

忘记了从那篇网文拷贝过来的,这里的js对cookie的写入,读取及删除方法,都很实用,呵呵,宣传下…

/*
name:cookie 名
value:cookie 值
*/
//写入cookie
function SetCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

///删除cookie
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

//读取cookie
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null)
return unescape(arr[2]);
return null;
}
分类: javascript 标签: , ,

DB2数据的导入(Import)与导出(Export及Load)

2010年1月6日 没有评论

转自:http://blog.chinaunix.net/u/26654/showart_363328.html

DB2中所谓的数据移动,包括:
1. 数据的导入(Import)
2. 数据的导出(Export)
3. 数据的装入(Load)

导入和装入都是利用DB2的相关命令把某种格式的文件中的数据保存到数据库中的表中
导出是指把DB2数据库的表中的数据保存到某种格式的文件当中去

数据移动的作用:

如果要在不同的数据库管理系统之间转移数据,数据移动通常是最实用的一种方法,因为任何一种数据库管理系统都支持常用的几种文件格式,通过这个通用的接口,就很容易实现不同系统间数据的转移。

这三个命令中,Export最简单,因为从表中向文件转移数据,通常不会出现错误,也不会有非法的数据。 阅读全文…

javascript 中的全部变量 与 局部变量

2009年9月23日 没有评论

因为一个面试题,我今天测试了下,居然我写的答案是错的,下面是大概意思的源程序:

var a = 100;
function showout(){
   var fullrange = 2 * a;
   var a = 200;
   var halfrange = a / 2;
   alert(fullrange);
   alert(halfrange);
}

开始我想的是既然在function里面定义了局部变量 a ,那function外定义的全局变量在function里面是不会起作用的,所以fullrange和halfrange的值应该分别是:400和100。因为当时是笔试,而不是上机(上机也不会出现这问题,呵呵),所以得出这个答案,面试老师看了之后回答是正确结果,我放心了。
但面试还是有几道题没有做出来,回家仔细的想了下,包括这道题,我在电脑上一测试,俺的天,得到fullrange的值居然是NaN,大呼怎么可能…. 于是我反复测试,如果我把function里面定义的:var a = 200;改为:a = 200;那么得出fullrange和halfrange的值的答案分别是:200和100,想了下其实如果我这里这样改的话,那么function里面的a就不是局部变量了,而是全局变量a,改变了全局变量a的值而已,所以得到值也就200和100了。那我就纳闷了,为什么定义了局部变量,而得不到fullrange的值呢,而且是个NaN,说明var fullrange = 2 * a;中a是没有定义的即typeof a为undefined。那么这也只能说明,在JavaScript中的function里面是严格按照顺序执行的,在function里面如果定义了与全局变量名称相同的局部变量,那么function里面引用到这个变量的都以局部变量来处理,用 this.变量名字 或 window.变量名字 才能引用function外部与变量名字相同的全局变量。
这里的全局变量和局部变量搞的很头晕了,我个人认为是:
在JavaScript执行代码之前,先处理变量声明,不管这个变量在什么位置,如果在function中变量显示声明,即变量在赋值语句中出现在左边,但没有用var声明,则把这个变量看成时全局变量。在function中,如果存在着用var声明的局部变量的名称与全局变量的名称相同,那么function中引用这个变量值的时候在应为局部变量的值,除非用this或window来修饰这个变量,才能取到全局变量的值。

javascript中二进制 八进制 十进制 十六进制相互转换

2009年9月21日 没有评论

在有的时候,我们需要把某些十进制数字,或则字母转换成二进制,或八进制,或十六进制,在JavaScript中,像这种进制很容易转换,如:
十进制转换成其他进制:

  • objectname.toString([radix])
  • objectname 必选项。要得到字符串表示的对象。
  • radix 可选项。指定将数字值转换为字符串时的进制。
  • radix 的最小值是 2,最大值是 36(用 10 个数字和 26 个英文字母表示)。
  • 返回对象的字符串表示。
var num = 10;
document.write(m.toString(2) + "<br>"); // 显示为 1010
document.write(m.toString(8) + "<br>"); // 显示为 12
document.write(m.toString(10) + "<br>"); // 显示为 10
document.write(m.toString(16) + "<br>"); // 显示为 a,注意是小写。

其他进制转换成十进制:
parseInt(numstring, [radix])

  • numstring 必选项。要转换为数字的字符串。
  • radix 可选项。在 2 和 36 之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 ’0x’ 的字符串被当作十六进制,前缀为 ’0′ 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
  • 返回由字符串转换得到的整数。
document.write(parseInt(1010, 2) + "<br>"); // 显示为 10
document.write(parseInt(12, 8) + "<br>"); // 显示为 10
document.write(parseInt(10, 10) + "<br>"); // 显示为 10
document.write(parseInt("a", 16) + "<br>"); // 显示为 10
document.write(parseInt("A", 16) + "<br>"); // 显示为 10
分类: javascript 标签:
Pages: Prev 1 2 3 4 5 Next