上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页
摘要: NIO不但引进了高效的文件通道,而且新增了更加好用的文件工具家族,包括路径组工具Paths、路径工具Path、文件组工具Files。先看路径组工具Paths,该工具提供了静态方法get,输入某个文件的路径字符串,输出该文件路径的路径对象Path。通过get方法获取路径对象的代码示例如下: 有了Pat 阅读全文
posted @ 2019-05-08 19:01 pinlantu 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了字节缓存的一堆概念,可能有的朋友还来不及消化,虽然文件通道的用法比起传统I/O有所简化,可是平白多了个操控繁琐的字节缓存,分明比较传统I/O更加复杂了。尽管字节缓存享有缓存方面的性能优势,但传统I/O也有缓存输入输出流呀,大家都有缓存机制,凭什么说NIO的文件处理更高效?之所以目前还看不出 阅读全文
posted @ 2019-05-06 21:14 pinlantu 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了文件通道的读写操作,其中用到字节缓存ByteBuffer,它是位于通道内部的存储空间,也是通道唯一可用的存储形式。ByteBuffer有两种构建方式,一种是调用静态方法wrap,根据输入的字节数组生成对应的缓存对象;另一种是调用静态方法allocateDirect,根据输入的数值分配指定大 阅读全文
posted @ 2019-05-03 10:49 pinlantu 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 前面介绍的各色流式IO在功能方面着实强大,处理文件的时候该具备的操作应有尽有,可流式IO在性能方面不尽如人意,它的设计原理使得实际运行效率偏低,为此从Java4开始增加了NIO技术,通过全新的架构体系带来了可观的性能提升。NIO是“Non-blocking IO”的缩写,意思是非阻塞的IO,与之相对 阅读全文
posted @ 2019-05-01 10:34 pinlantu 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 前面介绍的文件I/O,不管是写入文本还是写入对象,文件中的数据基本是原来的模样,用记事本之类的文本编辑软件都能浏览个大概。这么存储数据,要说方便确实方便,只是不够经济划算,原因有二:其一,写入的数据可能存在大量重复的信息,但依原样写到文件的话,无疑保留了不少冗余数据,造成空间浪费;其二,写入的数据多 阅读全文
posted @ 2019-04-29 22:22 pinlantu 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 有些时候,开发者想把程序运行过程中的数据临时保存到文件,可是前面介绍的字符流和字节流,要么用来读写文本字符串,要么用来读写字节数组,并不能直接保存某个对象信息,因为对象里面包括成员属性和成员方法,单就属性而言,每个属性又有各自的数据类型及其具体数值,这些复杂的信息既不能通过字符串表达,也不能通过简单 阅读全文
posted @ 2019-04-27 11:47 pinlantu 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 文件输出流FileOutputStream跟FileWriter同样有个毛病,每次调用write方法都会直接写到磁盘,使得频繁的写操作性能极其低下。正如FileWriter搭上了缓存兄弟BufferedWriter那样,FileOutputStream也有自己的缓存兄弟BufferedOutputS 阅读全文
posted @ 2019-04-24 21:49 pinlantu 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了如何使用字符流读写文件,并指出字符流工具的处理局限,进而给出随机文件工具加以改进。随机文件工具除了支持访问文件内部的任意位置,更关键的一点是通过字节数组读写文件数据,采取字节方式比起字符方式有下列两个好处:1、文件长度以字节为单位计量,可以分配等长的字节数组,却无法分配合适长度的字符数组, 阅读全文
posted @ 2019-04-22 21:28 pinlantu 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了字符流读写文件的两种方式,包括文件字符流和缓存字符流,但是它们的写操作都存在一个问题:不管是write方法还是append方法,都只能从文件开头写入,而不能追加到文件末尾或者在文件中间某个位置写入。这个问题真不好办,它意味着每次写操作都会覆盖掉原来的文件内容,注意是直接覆盖而非局部修改,可 阅读全文
posted @ 2019-04-20 10:09 pinlantu 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作“字符流I/O”,其中字母I代表输入Input,字母O代表输出Output。可是FileWriter的读操作并不高效,缘由在于FileWriter每次调用 阅读全文
posted @ 2019-04-17 21:58 pinlantu 阅读(2924) 评论(1) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页