- 浏览: 183357 次
- 性别:
- 来自: 北京
最新评论
-
delu577025500:
f — 表示返回数据列,如“snd1l1yr”。更详细的参见附 ...
连接雅虎财经API获取股票信息 -
kizz:
您好,请问如何计算压缩的时间。
利用ant.jar进行解压缩 -
yangxiutian:
想查查新版的struts2的工作原理 网上全是旧版的
struts2 StrutsPrepareAndExecuteFilter 源码分析 -
695165987:
KM文件夹 怎么下载上面的文件夹啊,一个个的下载很累啊~大哥知 ...
sap portal KM 文件夹布局配置 -
nurenok:
postInit(dispatcher, filterCo ...
struts2 StrutsPrepareAndExecuteFilter 源码分析
文章列表
FileInputSteam的学习
- 博客分类:
- 纯粹的JAVA
FileInputStream,文件输入流,此流读取的也是字节,因此读取到的数据都会被认为是byte类型的,对于字母以及数字而言,读取到的是相对应的ASCII码编号,由于JAVA对汉字的默认编码是UTF-8,此种编码对汉字是的编码长度是16位,即2字节,对汉字会读取为2个byte数值。此种输入把文本中的数据统一作为字节数据处理的,如果存储double值,3445.889,那么会看成8个byte值。
代码范例:
try {
InputStream input = new FileInputStream("./src/com/io/test.txt");
...
- 2009-11-10 09:08
- 浏览 1398
- 评论(0)
InputStream表示字节输入流,是抽象类不能被实例化。所有的字节输入流都是它的子类或者间接子类。
ByteArrayInputStream,字节数组输入流,从内存中的字节数组中读取数据,它的数据源是一个字节数组。ByteArrayInputSteam采用了适配器设计模式,把字节数组类型转换为了输入流类型。
使用范例:
public static void main(String[] args) throws IOException {
- 2009-11-09 16:01
- 浏览 1437
- 评论(0)
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。
创建示例表:
CREATE TABLE TBL_TEST( ID NUMBER, NAME VARCHAR2(100 BYTE), PID NUMBER DEFAULT 0);
插入测试数据:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1' ...
- 2009-10-13 10:52
- 浏览 1124
- 评论(0)
spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。使用举例如下: 1. FileSystemXmlApplicationContext eg1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); ...
- 2009-10-12 21:02
- 浏览 991
- 评论(0)
Visitor访问者模式定义作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.
在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为.
为何使用Visitor?Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有各种鲜明类型特征的对象一旦放入后,再取出时,这些类型就消失了.那么我们势必要用If来判断,如:
Iterator iterator = collection.iterator()whil ...
- 2009-10-12 09:30
- 浏览 1039
- 评论(0)
备忘录模式属于行为型模式,其意图是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将对象恢复到原先保存的状态。有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作,或从错误中恢复过来,需要实现检查点和取消机制,而要实现这些机制,你必须事先将状态信息保存在某处,这样才能将对象恢复到他们先前的状态。但是对象通常封装了其部分或所有的状态信息,使得其状态不能被其他的对象访问。也就不可能在该对象之外保存其状态。而暴露其内部状态又将违反封装的原则,可能有损应用的可靠性和可扩展性。
协作关系是:客户端每操作一步Employee(原发器)的信息,便产生 ...
- 2009-10-11 19:39
- 浏览 982
- 评论(0)
在实际开发中,往往需要多个标签的嵌套以完成一个任务,这样标签就存在父子关系。类似于下面:
<mt:if value="false">
<mt:out value="<%=outValue%>">
这些内容会显示在客户端。
</mt:out>
</mt:if>
在上面的标签中,<mt:switch>为父标签,<mt:case>为子标签,一个父标签可以嵌套多个子标签和HTML,Scriptlets等。
下面就来写一个这样的 ...
- 2009-10-10 22:13
- 浏览 1584
- 评论(0)
看项目组长的代码时,发现了他用了如下的一小段:
if(Logger.isLogging()) {
Logger.log(…….);
}
非常好奇,为啥要加上一个判断呢,上网查了查,有这样的说法。产生日志的代价很昂贵,在产生日志消息之后才会去看配置文件,是否允许使用这种级别的日志,如果禁用了就把日志消息抛弃。解决这个问题的标准方式是在构造昂贵的日志消息之前,首先检查是否启用了日志
- 2009-10-01 09:25
- 浏览 1145
- 评论(0)
项目中使用了Findbug来进行代码的检查,有个针对map遍历的提示。我的代码如下:
String temp = null;
Iterator<String> ite = param.keySet().iterator();
while(ite.hasNext()){
temp = ite.next();
sb.append(temp);
sb.append(param.get(temp).toString());
}
说是效能上不咋地。建议用如下方法:
Entry<String, String> temp = null;
Iterat ...
- 2009-10-01 09:10
- 浏览 1013
- 评论(0)
WTP (Web Tools Platform) 是一个开发J2EE Web应用程序的工具集。用了太长时间的MyEclipse难免想换换口味,引用一段官方的描述来介绍WTP:
The Eclipse Web Tools Platform (WTP) project extends the Eclipse platform with tools for developing Web and Java EE applications. It includes source and graphical editors for a variety of languages, wizards and bu ...
- 2009-10-01 09:03
- 浏览 2025
- 评论(0)
调用ajax时希望浏览器不缓存,服务器端控制AJAX页面缓存:
response.setHeader( "Pragma", "no-cache" );
response.addHeader( "Cache-Control", "must-revalidate" );
response.addHeader( "Cache-Control", "no-cache" );
response.addHeader( "Cache-Control& ...
- 2009-09-30 10:26
- 浏览 1560
- 评论(0)
OCP --Open-Close Principle 开放封闭原则
指系统应该对扩展是开放的,而对于修改是封闭的。简单的说就是,对可变性封装。可扩展性指,模块的行为功能可以被扩展,在应用需求改变或需要满足新的应用需求时,我们可以让模块以不同的方式工作。不可更改指,这些模块的源代码是不可改动的。任何人都不许修改模块的源代码。
在设计代码的时候要将变化的(或者可能变化的)部分提取出来,和那些不会改变代码分离。这样在以后需求变更的时候,我们就可以增加、修改系统功能,但不需要对已有代码做大幅度的改变。
实现OCP,抽象化是关键。因为抽象所以稳定,以不变应万变,不用修改。OCP还可表述为“对可变性 ...
- 2009-09-27 21:44
- 浏览 1402
- 评论(0)
大虾们见笑了
这是小弟第一次写这种文章
多多指点批评
在HEAD FIRST书中,作者用鸭子的例子来说明策略模式
起初,设计的模型是:有个基类Duck,在基类定了了一个变量:description,用来代表鸭子的外观描述,还定义了一个方法fly().
它的子类Mallard(野鸭),Sarcelle(绿翅鸭),Scaup(白胸鸭)都继承了基类中的变量和方法。
随着业务的深入细化,鸭子需要增加新方法比如blat(),而其又出现了其他类型的鸭子,比如木鸭,塑料鸭,这些玩具鸭子不会fly,但可以blat
这时候就要面临大面积的代码重写
首先:父类中增加了新方法就导致了所有的子类都面临着变动。
其次: ...
- 2009-09-10 20:08
- 浏览 1020
- 评论(1)
从网上看了些有关堆与栈的文章,没有看得太深,但是感觉有这些理解就OK了。到目前为止,我还是比较感觉都用了。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
在堆中产生了一个数组或对象后,在栈中定义一个变量,此变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用 ...
- 2009-09-04 16:52
- 浏览 945
- 评论(0)
在定义标签的时候,有时候需要使用EL表达式,尤其是外围使用C标签进行循环操作。EL表达式在标签中获取的对象为字符串,要想标签能够解析页面传递的EL表达式,则需要在标签中使用org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager. evaluate()对EL表达式进行解析,
具体的代码如下:
public void setValue(Object value)throws JspException{
this.value = ExpressionEvaluatorManager.evaluate(
...
- 2009-09-04 16:28
- 浏览 3605
- 评论(1)