Java基础-流与文件
潜水生活
这个作者很懒,什么都没留下…
展开
-
(一) 流
输入流 : 可以从其中读入一个字节序列的对象称做输入流。输出流 : 可以向其中写入一个字节序列的对象称作输出流。抽象类InputStream和OutPutStream构成了有层次结构的输入/输出(IO)类的基础。因为面向字节的流不便于处理以Unicode形式存储的信息(Unicode是定长双字节),所以从抽象类Reader和Writer中继承出来专门用于处理Unicode字符的类构成了...原创 2011-12-12 21:14:25 · 84 阅读 · 0 评论 -
涉及API
涉及API类 java.io.InputStreamabstract int read() : 从输入流中读取数据的下一个字节。 int read(byte[] b) : 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。即读入一个字节数组,并返回实际读入的字节数,或者在碰到流的结尾时返回-1,这个read方法最多读入b.length个字节。将读取的第一个字节存储在元素 ...原创 2011-12-20 23:04:40 · 94 阅读 · 0 评论 -
(八) 正则表达式
正则表达式(regular expression)用于指定字符串的模式(1)字符类(character class)是一个括在括号中的可选字符集,例如,[Jj]、[0-9]、[A-Za-z]或[^0-9]。这里"-"是表示范围,而"^"表示补集(除了指定字符之外的所有字符)(2)预定的字符类,例如\d(数字)和\p{Sc}(Unicode货币符号)(3)大部分字符都可以与它...原创 2011-12-20 23:03:33 · 130 阅读 · 0 评论 -
(七) 新I/O
Java SE 1.4引入大量用于改进输入/输出处理机制的特性,它们位于java.nio包中,合称"新I/O"包含特性:字符集编码器和解码器,非阻塞的I/O,内存映射文件和文件加锁机制。1.内存映射文件大多数操作系统可以利用虚拟内存实现将一个文件或文件的一部分"映射"到内存中。然后这个文件就可以当作是内存数组一样地访问,比传统的文件操作要快的多。对于中等尺寸的文件的顺序读入没有必要...原创 2011-12-20 22:00:14 · 78 阅读 · 0 评论 -
(六) 文件管理
(1)File类封装了在用户机器上处理文件系统所需的所有功能。但是,可以查询一个文件是否是隐藏文件,却不能在不使用本地方法的情况下将其隐藏。(2)File对象最简单的构造将接受一个(完全的)文件名,如果没有提供路径名,将使用当前路径。File file = new File("test.txt"); 将提供一个在当前目录下具有这个名字的文件对象。("当前目录"是执行虚拟机的进程的当前目录,如...原创 2011-12-20 21:25:54 · 68 阅读 · 0 评论 -
(五) 对象流与序列化
Java支持对象序列化(object serialization),可以将任何对象写出到流中,并在之后将其读回。(1)保存对象数据通过使用ObjectOutputStream对象ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("filename")); (2)通过writeObject方法...原创 2011-12-20 21:24:57 · 96 阅读 · 0 评论 -
(四) ZIP文档
ZIP文档(通常)以压缩格式存储了一个或多个文件,每个ZIP文档都有一个包含诸如文件名字和使用的压缩方法等信息的头。(1)使用ZIPInputStream来读入ZIP,通过getNextEntry方法返回一个描述这些项的ZipEntry类型的对象。ZIPInputStream的read方法被修改为在碰到当前项的结尾时返回 -1 ,必须通过调用closeEntry来读下一项。e.g.通读...原创 2011-12-16 21:56:02 · 280 阅读 · 0 评论 -
(三) 读写二进制数据
DataOutput接口定义了用于二进制格式写数组、字符、boolean值和字符串的方法。writeChars,writeByte,writeInt,writeShort,writeLong,writeFloat,writeDouble,writeChar,writeBoolean,writeUTF。注意:(1)writeInt总是将一个整数写出为4字节的二进制数量值,而不管它有多少...原创 2011-12-13 11:20:28 · 197 阅读 · 0 评论 -
(二) 文本输入与输出
指定编码格式输入输出文本 InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8"); int b; StringBuilder sb = new StringBuilder(); while((b=isr.read()) != -1){ ...原创 2011-12-12 23:33:20 · 123 阅读 · 0 评论 -
高效读取大数据文本文件(上亿行数据)
一.前言 本文是对大数据文本文件读取(按行读取)的优化,目前常规的方案(限于JDK)有三种,第一种LineNumberReader,第二种RandomAccessFile,第三种是内存映射文件(详见http://sgq0085.iteye.com/blog/1318622)在RandomAccessFile基础上调用getChannel().map(...)。 1.LineN...2015-05-29 11:41:50 · 1245 阅读 · 0 评论