输入输出&网络IO

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jinknow/article/details/80274980

Java把所有设备里的有序数据抽象成流模型。

输入流&输出流(以程序运行内存来看)、字节流(InputStream)&字符流(Reader/Writer)、节点流&处理流【装饰器模式:使用处理流来包装不同的节点流】

重定向 System.setErr();   System.setOut(ps);  System.setIn(fis);

RandomAccessFile

既可以读取文件内容,也可以向文件输出数据。“随机访问”,可以直接跳转到文件任意地方来读写数据,故只是访问文件部分内容,而不是从头读到尾,选择RandomAccessFile。

直接读写文件,不能读写其他IO节点。

RandomAccessFile raf = new RandomAccessFile("a.java”, “rw”);// r   rw   rws  rwd

raf.getFilePointer();    raf.seek(raf.length() ); raf.write();

RandomAccessFile不能向文件指定位置插入内容(会覆盖),只能在最后追加内容,how?先把插入点后面内容读入缓冲区,把插入的内容写入文件后再将缓冲区内容追加到文件后面。

NIO.2

java7对原有NIO进行重大改进:

a)提供全面的文件IO和文件系统访问支持:新增java.nio.file包及各个子包

b)基于异步Channel的IO(NIO.2):在java.nio.channels包下新增多个以Asynchronous开头的Channel接口和类

引入Path接口,代表一个平台无关的平台路径。Files工具类操作文件,Paths工具类两个返回Path的静态方法。

FileVisitor遍历文件和目录(SimpleFileVisitor)  Files.walkFileTree()

WatchServie监控文件变化  Path.get(“C:/”).register(watchService, )

访问文件属性java.nio.file.attribute包下的工具类

猜你喜欢

转载自blog.csdn.net/jinknow/article/details/80274980