I/O¶
字符流¶
FileReader和FileWriter¶
BufferedReader和BufferedWriter¶
InputStreamReader和OutputStreamWriter¶
字节流¶
FileInputStream和FileOutputStream¶
标准IO¶
按照标准I/O模型,Java提供了System.in、System.out和System.err。System.out已经事先被包装成了PrintStream对象。System.err同样也是PrintStream,但System.in却是一个没有被包装过的未经加工的InputStream。
新I/O¶
JDK1.4的java.nio.*包中引入了新的JavaI/O类库,其目的在于提高速度。速度的提高来自于所使用的结构更接近于操作系统执行I/O的方式:通道和缓冲器。我们并没有直接和通道交互:我们只是和缓冲器交互,并把缓冲器派送到通道。通道要么从缓冲器获得数据,要么向缓冲器发送数据。
字节存放次序¶
不同的机器可能会使用不同的字节排序方法来存储数据。“big endian”(高位优先)将最重要的字节存放在地址最低的存储器单元。而“litte endian”(低位优先)则是将最重要的字节放在地址最高的存储单元。当存储量大于一个字节时,像int、float等。就要考虑字节的顺序问题了。ByteBuffer是以高位优先的形式存放数据的,并且数据在网上传送时也尝尝使用高位优先的形式。我们可以使用带有参数ByteOrder.BIG_ENDIAN或ByteOrder.LITTLE_ENDIAN的order()方法改变ByteBuffer的字节排序方式。
参考¶
- Java NIO 系列教程
- Java NIO系列教程(一) Java NIO 概述
- Java NIO系列教程(二) Channel
- Java NIO系列教程(三) Buffer
- Java NIO系列教程(四) Scatter/Gather
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(六) Selector
- Java NIO系列教程(七) FileChannel
- Java NIO系列教程(八) SocketChannel
- Java NIO系列教程(九) ServerSocketChannel
- Java NIO系列教程(十) Java NIO DatagramChannel
- Java NIO系列教程(十一) Pipe
- Java NIO系列教程(十二) Java NIO与IO



