摘要: 管道流,用于线程间的通信。一个线程的PipedInputStream对象从另外一个线程的PipedOutputStream对象读取输入。要使管道流有用,必须同时构造管道输入流和管道输出流。 代码 Code highlighting produced by Actipro CodeHighligh... 阅读全文
posted @ 2010-12-23 23:01 meng72ndsc 阅读(3075) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用数据流? 问题:怎样将一个long类型的随机数(比如有100个数字)放到文件中? 解决方案:可以将它转化成为字符串,然后将该字符串转化成为字节数组,然后就可以将这个字节数组写进去了。这确实可以。可是很费力气,因为你要把这个long类型的数(例如:12345678963214)进行转换成为... 阅读全文
posted @ 2010-12-23 21:14 meng72ndsc 阅读(980) 评论(1) 推荐(0) 编辑
摘要: 过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。BufferedInputStream派生自java.io.FilterInputStream,并不是InputStream。在后面将看到BufferedReader派生自Reader,而不是派生自FilterReader,... 阅读全文
posted @ 2010-12-23 20:37 meng72ndsc 阅读(2447) 评论(0) 推荐(0) 编辑
摘要: FileInputStream 代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import java.io.*;public class ... 阅读全文
posted @ 2010-12-23 20:16 meng72ndsc 阅读(226) 评论(0) 推荐(0) 编辑
摘要: FileOutputStream 使用FileOutputStream可以向文件写入内容。如果在构造FileOutputStream时,该文件已经存在,那么就覆盖这个文件。 代码 Code highlighting produced by Actipro CodeHighlighter (fr... 阅读全文
posted @ 2010-12-23 19:51 meng72ndsc 阅读(223) 评论(0) 推荐(0) 编辑
摘要: InputStream三个基本的读方法一. abstract int read(): 读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了流的末尾。二. int read(byte[] b):将数据读入一个字节数组,同时返回读取的字节数。如果返回-1,表示读到了输入流的末尾。三. int ... 阅读全文
posted @ 2010-12-23 19:38 meng72ndsc 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 流式I/O 流(Stream)是字节的源或目的。 两种基本的流:输入流(InputStream)和输出流(OutputStream)。可从中读出一系列字节的对象称为输入流。而能向其中写入一系列字节的对象称为输出流。 流的分类 节点流:从特定的地方读写的流类,例如:磁盘或一块内存区域。 过... 阅读全文
posted @ 2010-12-23 19:26 meng72ndsc 阅读(231) 评论(0) 推荐(0) 编辑
摘要: File类 一个File类的对象,表示了磁盘上的文件或目录 File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。 利用File类型的对象向磁盘创建一个目录和一个文件: 代码 Code highlighting produced by Actipro CodeHighlighter (f... 阅读全文
posted @ 2010-12-23 15:34 meng72ndsc 阅读(2539) 评论(0) 推荐(0) 编辑
摘要: 应该怎样选择集合 如果要求线程安全,使用Vector、Hashtable 如果不要求线程安全,应使用ArrayList、LinkedList、HashMap 如果要求键值时,则使用HashMap、Hashtable 如果数据量大,又要线程安全考虑Vector。 阅读全文
posted @ 2010-12-23 12:46 meng72ndsc 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 相同点:ArrayList和Vector都是java的集合类,都可以用来存放java对象 区 别: 一.Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的而ArrayList则是异步的,因此ArrayList中的对象并不是安全的。因为同步的要求会影响效率,所以如果你不需要... 阅读全文
posted @ 2010-12-23 12:45 meng72ndsc 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 相同点:HashMap和Hashtable都是java的集合类,都可以用来存放java对象区 别: 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是java 1.2引进的Map接口的一个实现。 二.同步性:Hashtable是同步的。这个类中的一些方法保证... 阅读全文
posted @ 2010-12-23 12:43 meng72ndsc 阅读(250) 评论(0) 推荐(0) 编辑
摘要: Properties :派生自Hashtable。主要是用来存储字符串类型的键值对。Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 System类可以返回一个系统的属性。通过getProperties()方... 阅读全文
posted @ 2010-12-23 12:38 meng72ndsc 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Vector: 用ArrayList代替Vector。Vector是线程安全的,而有的时候我们确实希望在多线程的情况下使用列表,那么这个时候我们可以利用Collections这个类当中为我们提供的synchronizedList(List list),它可以返回一个线程安全的同步的列表,还提供了返回... 阅读全文
posted @ 2010-12-23 12:04 meng72ndsc 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 和Set相似,HashMap的速度通常都比TreeMap快,只有在需要排序功能的时候才使用TreeMap。 阅读全文
posted @ 2010-12-23 12:01 meng72ndsc 阅读(262) 评论(0) 推荐(0) 编辑
摘要: TreeMap是实现了sortMap的一个类。TreeMap按照key进行排序。用法跟hashMap基本一样 。 阅读全文
posted @ 2010-12-23 11:59 meng72ndsc 阅读(246) 评论(0) 推荐(0) 编辑
摘要: HashMap是对key进行散列。 Map跟Collection没有任何关系,所以没有add()方法。放置元素是通过V put(K key,V value)方法,获取元素通过V get(Object key) 代码 Code highlighting produced by Actipro C... 阅读全文
posted @ 2010-12-23 11:58 meng72ndsc 阅读(450) 评论(0) 推荐(1) 编辑
摘要: HashSet是基于Hash算法实现的,其性能通常优于TreeSet。我们通常都应该使用HashSet,在我们需要排序的功能时,我们才使用TreeSet 阅读全文
posted @ 2010-12-23 10:02 meng72ndsc 阅读(817) 评论(0) 推荐(0) 编辑
摘要: TreeSet是依靠TreeMap来实现的。TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口。或者有一个自定义的比较器。我们可以在构造TreeSet对象时,传递实现Comparator接口的比较... 阅读全文
posted @ 2010-12-23 09:55 meng72ndsc 阅读(32198) 评论(0) 推荐(2) 编辑
摘要: hashSet 实现Set接口的hash table(哈希表),依靠HashMap来实现的。HashSet实现了Set接口,所以它不能有重复的元素。我们应该为要存放到散列表的各个对象定义hashCode()和equals()。 先来看一个简单的例子: 代码 Code highlighting ... 阅读全文
posted @ 2010-12-23 09:17 meng72ndsc 阅读(589) 评论(0) 推荐(0) 编辑