摘要: Date类用于表示日期和时间。它没考虑国际化问题,所以又设计了另外两个类。 Calendar类: 主要是进行日期字段之间的相互操作。 编程实例:计算出距当前日期时间315天后的日期时间,并使用”xxxx年xx月xx日xx小时:xx分:xx秒”的格式输出。 import java.util.*; im 阅读全文
posted @ 2018-08-06 23:45 borter 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 迄今为止我们的讨论围绕单一的文件输入输出。但是加速I/O性能还有另一方面--和得到文件特性有关。例如,考虑一个打印文件长度的小程序: import java.io.*; public class length1 { public static void main(String args[]) { i 阅读全文
posted @ 2018-08-06 23:44 borter 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 串行化 以标准格式将任意的Java数据结构转换为字节流。例如,下面的程序输出随机整数数组: import java.io.*; import java.util.*; public class serial1 { public static void main(String args[]) { Ar 阅读全文
posted @ 2018-08-06 23:43 borter 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 分解 是指将字节或字符序列分割为像单词这样的逻辑块的过程。Java 提供StreamTokenizer 类, 像下面这样操作: import java.io.*; public class token1 { public static void main(String args[]) { if (a 阅读全文
posted @ 2018-08-06 23:42 borter 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 关于硬件的高速缓存的详细讨论超出了本文的讨论范围。但是在有些情况下软件高速缓存能被用于加速I/O。考虑从一个文本文件里面以随机顺序读取一行的情况,这样做的一个方法是读取所有的行,然后把它们存入一个ArrayList (一个类似Vector的集合类): import java.io.*; import 阅读全文
posted @ 2018-08-06 23:39 borter 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Java提供用于压缩和解压字节流的类,这些类包含在java.util.zip 包里面,这些类也作为 Jar 文件的服务基础 ( Jar 文件是带有附加文件列表的 Zip 文件)。 下面的程序接收一个输入文件并将之写入一个只有一项的压缩的 Zip 文件: import java.io.*; impor 阅读全文
posted @ 2018-08-06 23:38 borter 阅读(170) 评论(0) 推荐(0) 编辑
摘要: RandomAccessFile 是一个进行随机文件I/O(在字节层次上)的类。这个类提供一个seek方法,和 C/C++中的相似,移动文件指针到任意的位置,然后从那个位置字节可以被读取或写入。 seek方法访问底层的运行时系统因此往往是消耗巨大的。一个更好的代替是在RandomAccessFile 阅读全文
posted @ 2018-08-06 23:37 borter 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 实际上向文件写数据只是输出代价的一部分。另一个可观的代价是数据格式化。考虑一个三部分程序,它像下面这样输出一行: The square of 5 is 25 方法 1 第一种方法简单的输出一个固定的字符串,了解固有的I/O开销: public class format1 { public stati 阅读全文
posted @ 2018-08-06 23:36 borter 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 早些时候曾提到从文件里面读取字符的方法调用的消耗可能是重大的。这个问题在计算文本文件的行数的另一个例子中也可以找到。: import java.io.*; public class line1 { public static void main(String args[]) { if (args.l 阅读全文
posted @ 2018-08-06 23:34 borter 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 方法 2 和 3 使用了缓冲技术, 大块文件被从磁盘读取,然后每次访问一个字节或字符。缓冲是一个基本而重要的加速I/O 的技术,而且有几个类支持缓冲(BufferedInputStream 用于字节, BufferedReader 用于字符)。 一个明显得问题是: 缓冲区越大I/O越快吗?典型的Ja 阅读全文
posted @ 2018-08-06 23:33 borter 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 作为这个讨论的开始,这里有几个如何加速I/O的基本规则: 1. 避免访问磁盘 2. 避免访问底层的操作系统 3. 避免方法调用 4. 避免个别的处理字节和字符 很明显这些规则不能在所有的问题上避免,因为如果能够的话就没有实际的I/O被执行。考虑下面的计算文件中的新行符('\n')的三部分范例。 方法 阅读全文
posted @ 2018-08-06 23:31 borter 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 从以上技术的讨论中我们不难体会到,序列化是Java之所以能够出色地实现其鼓吹的两大卖点??分布式(distributed)和跨平台(OS independent)的一个重要基础。TIJ(即“Thinking in Java”)谈到I/O系统时,把序列化称为“lightweight persisten 阅读全文
posted @ 2018-08-06 23:30 borter 阅读(217) 评论(0) 推荐(0) 编辑
摘要: ★什么是“Persistence” 用过VMWare的朋友大概都知道当一个guest OS正在运行的时候点击“Suspend”将虚拟OS挂起,它会把整个虚拟内存的内容保存到磁盘上,譬如你为虚拟OS分配了128M的运行内存,那挂起以后你会在虚拟OS所在的目录下找到一个同样是128M的文件,这就是虚拟O 阅读全文
posted @ 2018-08-06 23:28 borter 阅读(147) 评论(0) 推荐(0) 编辑
摘要: ★Socket Socket编程可能大家都很熟,所以就不多讨论了,只是说通过socket把数据保存到远端服务器或从网络socket读取数据也不失为一种值得考虑的方式。 ★RMI RMI机制其实就是RPC(远程过程调用)的Java版本,它使用socket作为基本传输手段,同时也是序列化最重要的一个应用 阅读全文
posted @ 2018-08-06 23:26 borter 阅读(128) 评论(0) 推荐(0) 编辑
摘要: ★文件流 文件操作是最简单最直接也是最容易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前写的一个扫雷的小游戏JavaMine就是这样保存一局的状态的),这样就比较“底层”了。 主要类与方法 阅读全文
posted @ 2018-08-06 23:25 borter 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 有个schedule方法,可以指定过多长时间定期的执行某个程序或某段代码,或者过多长时间启动一个线程等。 TimerTask类实现了Runnable接口,要执行的类由它里面实现的run方法来完成。 编程实例:程序启动30秒后启动windows自带的计算器程序。 阅读全文
posted @ 2018-08-06 23:23 borter 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 1。使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(i 阅读全文
posted @ 2018-08-06 23:22 borter 阅读(836) 评论(0) 推荐(0) 编辑
摘要: Properties是HashTable的子类。增加了将hashtable对象中的关键字和值保存到文件以及从文件中读取关键字和值到hashtable对象中的方法。 如果要用properties.store()方法存储properties中的内容,每个属性的关键字和值都必须是string类型。 编程举 阅读全文
posted @ 2018-08-06 23:21 borter 阅读(91) 评论(0) 推荐(0) 编辑
摘要: HashTable类不紧可以像Vector类一样动态的存储一系列的对象,而且对存储的每一个对象(称为值)都安排另一个对象(称为关键字)与它相关联。 用做关键字的类必须覆盖Object.hashCode方法和Object.equals方法, 因为要取出数据时,传递给get()方法的参数要跟里面的关键字 阅读全文
posted @ 2018-08-06 23:20 borter 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayL 阅读全文
posted @ 2018-08-06 23:19 borter 阅读(130) 评论(0) 推荐(0) 编辑