java IO
1.InputStream和OutputStream是用于读或写单个字节或者字节数组,我们很少用到它们的方法,它们之所以存在是因为别的类可以使用它们,以便提供更有用的接口。因此,我们很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能。
2.FilterInputStream和FilterOutputStream是用来提供装饰器类接口以控制特定输入输出流的两个类,分别自IO类库的InputStream和OutputStream继承而来。我们几乎每次都要对输入进行缓冲,所以IO库把无缓冲输入作为特殊情况。BufferedOutputStream是一个修改过的OutputStream,它对数据流使用缓冲技术,所以在输出时,我们可能会经常使用它。
3.Reader和Writer提供兼容Unicode与面向字符的IO功能,设计Reader和Writer继承层次就是为了国际化,在所有的IO操作中都支持Unicode。
有时候我们必须把来自于“字节”层次结构中的类和“字符”层次结构中的类结合起来使用。“适配器”类可以实现这一点:InputStreamReader可以把InputStream转成Reader,而OutputStreamWriter可以把OutputStream转换成Writer。
大多数场合,最明智的做法是尽量尝试使用Reader和Writer,不行再使用面向字节的类库。
4.RandomAccessFile是一个自我独立的类,直接从Object派生而来,因为RandomAccessFile拥有和别的IO类型本质不同的行为,可以在一个文件内向前和向后移动。RandomAccessFile不支持装饰,所以不能将其与InputStream和OutputStream子类的任何部分组合起来。getFilePointer():查找当前所处的文件位置;seek():用于在文件内移至新的位置;length():判断文件的最大尺寸;构造器第二个参数指示随机读(r),或者读写(rw),不支持只写。
5.典型用法。
(1)缓冲输入文件:缓冲用于提高读写速度。我们将所产生的引用传给一个BufferedReader构造器,由于BufferedReader也提供readLine()方法,所以这是我们的最终对象进行读取的接口。当readLine()返回null时,就达到了文件的末尾。例:BufferedReader in = new BufferedReader(new FileReader(filename));
(2)从内存输入:BufferedInputFile.read()用于读文件到内存。StringReader in = new StringReader(BufferedInputFile.read(filename));
(3)格式化的内存输入:要读取格式化数据可以使用DataInputStream,DataInputStream in = new DataInputStream(new ByteArrayInputStream(BufferedInputFile.read(filename).getBytes()));我们用DataI
相关文档:
package com.vista.Server;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels. ......
将Flex与Spring集成后(BlazeDS 与Spring集成指南 ),第一个面临的问题就是:对于Java端返回的各种Java类型的对象,Flex中能否有相应的数据类型来映射。
处理,尤其是List、Set、Map及POJO对象值。
在 BlazeDS 与Spring集成指南 例子的基础上,调整相关的测试代码如下:
1、Java端
1.1、com.yeeach.HelloWorldService ......
1.Base64
加密:org.apache.commons.codec.binary.Base64.encodeBase64(byte[] binaryData)
解密:org.apache.commons.codec.binary.Base64.decodeBase64(byte[] base64Data)
2.Md5
加密:org.apache.commons.codec.digest.md5Hex(byte[] data)
解密:无
3.DES(des-ecb,3des,des-cbc,cb ......
1. 当某个类中的某个方法中的局部变量的名字与该类中的全局变量的名字相同时 该全局变量将被隐藏;此时 如果想在该方法中使用全局
变量 必须使用关键字(this.全局变量名)
2. 当this关键字出现在类的实例方法中时,代表正在调用该方法的当前对象
3.  ......
一、理解多线程
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通 ......