java学习小记二
最近一直纠结于Java的IO中,刚开始看的一头雾水,各种Stream,各种Reader,各种Buffer。headache!
1,总的来说就包括InputStream 和 OutputStream 两个,具体应该用不到,都是用他们的派生类。
2,File 类的Object 可以是一个文件,也可以是一个directory/path。
3,Stream 是面向low-level的,而Reader/Writer是面向character的。
4,Whenever you want use readLine(),use BufferedReader。Other than this, DataInputStream is preferred choice。DataInputStream is offen used for getting primitives。
5,Old IO 不多说了。New IO应该说会比较常用,NIO 主要包括两个东东,非常重要,一个是channel,一个是ByteBuffer。将文件或者其它输入流都转化去Channel,对于文件用FileInputStream().getChannel(),或者FileOutputStream().getChannel(),或者RandomAccessFile().getChannel(),对于Socket 也可以用对应的方法处理成Channel。ByteBuffer主要面向bytes,主要方法是allocate()分配空间,filp()裁剪将capacity设置到limit,clear()重置,array(),hasRemaining()检查position和limit之间是否还有elements等。将channel的内容读入buffer用fc.read(buffer),将buffer写入channel用fc.write(buffer).
6,对于ByteBuffer有个static方法wrap,可以用于将某string.getBytes(),处理成byte[]。ByteBffer还是low-level的,可以用CharBffer,IntBuffer,DoubleBuffer等来抓化为易于处理的。这几个子类正常constructor时,都是Heap型的,都可以用array()方法,要是ByteBuffer使用asCharBuffer(),asIntBuffer,等转化来的,就不能用array()了。Heap型的,不会按照对应类型划分区域,每次使用时,按对应类型增加pos。而ByteBufferAs型的,就会按照对应的类型,将size划分成等大小的,每次pos+1。
7,对于CharBuffer等的,就可以用put(),get()等显示的写入或读取数据。
8,char、short 2bytes;int float 4bytes;double long 8bytes。
相关文档:
一、数组是什么?
1.基本概念:
Definition:数组就是相同类型元素的线性集合。
Array is a collection of the same data.
An array is object.
对数组的理解:
数组是一个对象,是一个指向数组的引用对象。
2.Syntax
Array Copy
二、为什么要使用数组?
......
节点流
父类
InputStream
OutputStream
Reader
Writer
文件
FileInputStream
FileOutputStream
FileReader
FileWriter
数组
ByteArrayInputStream
ByteOutputStream
CharArrayReader
CharArrayWriter
字符串
无
无
StringReader
StringWriter
管道
PipedInputStream
PipedOutputStream
PipedRead ......
2010-05-19
七、转换XML
l 可扩展样式表语言(XSL),被定义成了一种表示样式表的语言。是管理怎样从格式A转换一个文档到格式B的规范语言。该语言组件用于管理转换结构中的处理和身份验证
n XSL是一种用来转换XML文档的语言。
n XSL是一个用来指定XML文档格式的词汇库。
l XSL和树形描述:这 ......
通常的观念认为,事务仅与数据库相关。
事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的 ......
Server端:
package test.bwl;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; &nbs ......