传智播客的JAVA SE高级视频2 IO 自学笔记
传智播客的JAVA SE高级视频2 IO 自学笔记:
File类:
1.IO包中唯一代表磁盘文件本身信息的类,而不是文件中内容。
2.创建、删除、重命名文件等方法。
3.Java中目录被当作一种特殊文件使用,list方法返回所有子目录和文件。
4.Unix下路径分隔符'/',windows下分隔符为'\'。
RandomAccessFile类
支持随机访问方式。
RandomAccessFile类在随机(相对顺序而言)读写等长记录格式文件时有很大优势。可以将记录当成一个整体来读取。
RandomAccessFile类仅限于操作文件,不能访问其他IO设备,如网络、内存映像。
writeChars();
readChar();
流:字节序列的抽象概念
文件是数据的静态存储形式,而流是数据传输时的形态。
InputStream
int read() 读取一字节。为什么不返回byte呢?
因为二进制形式为11111111的数,以byte表示为-1,以int表示为255。返回-1表示读到文件尾。
int available();
OutputStream
void write(int b); // byte运算时自动提升为int
flush();
FileInputStream、FileOutputStream
PipedInputStream、PipedOutputStream
使用管道流类,可以实现各个程序模块间的松耦合通信。
ByteArrayInputStream、ByteArrayOutputStream
用于以IO流方式来完成对字节数据内容读写类似内存虚拟文件或内存映像文件功能。
System.in是InputStream类型
System.out是PrintStream类型
不管各种底层物理设备用什么方式实现数据终止点,InputStream的read方法总以-1表示结束。
windows下:Ctrl+Z表示键盘输入结束,Ctrl+C表示强制结束。
Unix/Linux下:Ctrl+D表示输入结束
建议:要编程从键盘上连续读取一大段数据时,应尽量将读取数据的过程放在函数中,使用-1作为输入结束。在函数中编写代码不应直接使用System.in读取,而应用一个InputStream类型的形参,然后将System.in作为实参传递给函数。
字符编码:
1.计算机里只有数字,计算机里一切都是用数字来表
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
渣滓回收的悖论
所谓“成也萧何败萧何”。Java的渣滓回收确确实实带到了很多好处,为开发带回了方便。但是在一些高性能、高并发的情况下,渣滓回收确变为了钳制Java使用的瓶颈。当前JDK的渣滓回收算法,始终没法解决渣滓回收时的暂停问题,由于这个暂停严重影响了程序的呼应时间,促成堵塞或积聚。这也是后续JDK ......