java编程思想阅读笔记(十)I/O系统(上)
来源:互联网 发布:淘宝 装修 编辑:程序博客网 时间:2024/05/01 01:14
又是好久没有更新了,在外面出差,还参加了个Nice公司的亚太区销售峰会,体会了些软件卖钱的理念,然后就是公司搞得气派与自己英文的太烂了。最后说书,这个书其实第一遍算是看个差不多了,慢慢的在把笔记补上,还是原来的话,仅仅看语法和体会一些用到的细节了,至于思想还是感受不到,没有真正的大的项目还是无法支撑的。
从File类开始,到文件的读写控制来叙述。
(1)File 文件或文件集名,抽象路径名,并且可以据此来查看文件的属性,同时,对象一旦建立则不能改变。
(2)最初的I/O类:
(3)java1.1中提供了兼容Unicode与面向字符的I/O功能类
看些使用的例子:
带缓冲的文件输入:
BufferedReader in = new BufferedReader( new FileReader(stringFileName) );
StringReader in = new StringReader( BufferedInputFile.read("") );
基本的文件输出:
PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter()));
PrintWriter out = new PrintWriter(stringFileName);
标准I/O,System.in out err以及重定向SetIn Out Err这里就不细说了。
(4)新I/O nio
首先是,实际上旧的I/O包已经使用nio重新实现过,因此不显式地使用nio也是用到了。
FileChannel ( FileInputStream FileOutputStream RandomAccessFile )
FileChannel fc = new FileOutputStream("").getChannel();
fc.write();
fc = new RandomAccessFile("").getChannel();
其次是视图缓冲器一说:通过在同一个ByteBuffer上建立不同的视图缓冲器,将同一个字节序列翻译成short,int,float,long和double类型,相当于说是在同一个存储区域以不同的类型形式展现。
最好是内存映射文件,我原来有篇文章简单说了下c++下的使用,意思很明显就是在磁盘上建立一块区域用来存放大文件(可能一下子无法装载进来,选择部分),用起来感觉都已经在内存中了,而不用进行文件的I/O操作。
MappedByteBuffer out = new RandomAccessFile("").getChannel().map( FileChannel.MapMode.READ_WRITE,0,length());
(5)文件加锁
从File类开始,到文件的读写控制来叙述。
(1)File 文件或文件集名,抽象路径名,并且可以据此来查看文件的属性,同时,对象一旦建立则不能改变。
(2)最初的I/O类:
(3)java1.1中提供了兼容Unicode与面向字符的I/O功能类
看些使用的例子:
带缓冲的文件输入:
BufferedReader in = new BufferedReader( new FileReader(stringFileName) );
StringReader in = new StringReader( BufferedInputFile.read("") );
基本的文件输出:
PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter()));
PrintWriter out = new PrintWriter(stringFileName);
标准I/O,System.in out err以及重定向SetIn Out Err这里就不细说了。
(4)新I/O nio
首先是,实际上旧的I/O包已经使用nio重新实现过,因此不显式地使用nio也是用到了。
FileChannel ( FileInputStream FileOutputStream RandomAccessFile )
FileChannel fc = new FileOutputStream("").getChannel();
fc.write();
fc = new RandomAccessFile("").getChannel();
其次是视图缓冲器一说:通过在同一个ByteBuffer上建立不同的视图缓冲器,将同一个字节序列翻译成short,int,float,long和double类型,相当于说是在同一个存储区域以不同的类型形式展现。
最好是内存映射文件,我原来有篇文章简单说了下c++下的使用,意思很明显就是在磁盘上建立一块区域用来存放大文件(可能一下子无法装载进来,选择部分),用起来感觉都已经在内存中了,而不用进行文件的I/O操作。
MappedByteBuffer out = new RandomAccessFile("").getChannel().map( FileChannel.MapMode.READ_WRITE,0,length());
(5)文件加锁
其实会和后面并发中的加锁类似(是一个共享竞争资源),可以使用trylock 或 lock对文件或者映射文件的部分加锁;后者是直接获取锁,如果无法获得而阻塞;前者是尝试获取锁,无法获得直接返回;还有可以设定些等待时间之类的。
后面下会主要说说序列化的。
- java编程思想阅读笔记(十)I/O系统(上)
- java编程思想阅读笔记(十)I/O系统(下)
- 转载《Java编程思想》Java I/O系统章节阅读笔记
- 《Java编程思想》之I/O系统
- Java编程思想--I/O系统
- Java编程思想之I/O系统
- java 编程思想--I/O系统(一)
- java 编程思想--I/O系统(二)
- java编程思想读书笔记 第十八章 java I/O系统(第四篇 新I/O)
- 《Java 编程思想》--第十八章:Java I/O 系统
- 《Java编程思想》第18章 Java I/O系统
- 《java编程思想》第十八章 java I/O系统
- 《java编程思想》第十八章 java I/O系统
- Java编程思想 第十八章 Java I/O系统
- java编程思想-第18章-java I/O系统
- java编程思想读书笔记-第十一章 java I/O系统
- Java编程思想-18Java I/O系统
- Java编程思想学习笔记——容器深入、I/O系统
- C语言与汇编语言混合编程应遵守的规则
- Kinect开发应用知识大全
- 1703. Obstacle Course(最短路径bfs)
- PKU 1659 Frogs' Neighborhood
- oracle sql 优化
- java编程思想阅读笔记(十)I/O系统(上)
- 【Android Training - UserInfo】记住登入用户的信息[Lesson 0 - 章节概览]
- 你应该掌握的——树和二叉树
- 2-NET Remoting体系结构的主要元素
- 10分钟学会ORACLE PL/SQL
- 3-ADO.NET2.0的十大新特性
- HDMI
- 《UNIX环境高级编程》学习总结
- 站长的知识