随笔分类 -  Java IO

摘要:在以前的Java版本中,如果要遍历某个文件夹下所有的子文件、子文件夹,需要我们自己写递归,很麻烦。 在Java7以后,我们可以NIO.2中的Files工具类来遍历某个文件夹(会自动递归)。 大致用法: Files.walkFileTree(Path path, FileVisitor visitor 阅读全文
posted @ 2019-05-29 19:21 chy-x 阅读(3268) 评论(0) 推荐(0) 编辑
摘要:Files类是一个工具类,提供了大量的静态方法来操作文件、文件夹。 Files类常用方法: long size(Path path) //返回文件大小 boolean isDirectory(Path path) //是否是文件夹 boolean isExecutable(Path path) // 阅读全文
posted @ 2019-05-29 17:06 chy-x 阅读(1570) 评论(0) 推荐(1) 编辑
摘要:Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下。 早期的Java只提供了File类来操作文件、文件夹本身,功能有限,性能也不高。 NIO.2为解决这种缺陷,提供 阅读全文
posted @ 2019-05-28 23:59 chy-x 阅读(2869) 评论(0) 推荐(0) 编辑
摘要:1、 计算机中文件、数据底层都是基于二进制的。 计算机底层并没有文本文件、图片文件之分,它只是记录着每个文件的二进制序列。 字符集:包含着字符和二进制序列之间的对应关系,一个字符对应一个二进制序列。 编码(Encode):把人能看懂的明文转换为计算机能理解二进制序列。 解码(Decode):把计算机 阅读全文
posted @ 2019-05-28 13:47 chy-x 阅读(1221) 评论(0) 推荐(0) 编辑
摘要:FileLock,文件锁。 文件锁在OS中很常见,如果多个程序同时访问、修改同一个文件,很容易因为文件数据不同步而出现问题。给文件加一个锁,同一时间,只能有一个程序修改此文件,或者程序都只能读此文件,这就解决了同步问题,保证了线程安全。 文件锁是进程级别的,不是线程级别的。文件锁可以解决多个进程并发 阅读全文
posted @ 2019-05-28 12:27 chy-x 阅读(9180) 评论(2) 推荐(1) 编辑
摘要:1、 Channel 通道,可以将指定文件的部分或全部直接映射成Buffer。 不能直接读写Channel中的数据,Channel只能与ByteBuffer交互。 读数据时,把Channel中的数据映射到ByteBuffer中取出数据使用。 写数据时,把数据放到Buffer中,再把ByteBuffe 阅读全文
posted @ 2019-05-28 11:58 chy-x 阅读(669) 评论(0) 推荐(0) 编辑
摘要:Buffer 缓冲,用于批量读写数据 Buffer是一个抽象类,基本数据类型都有实现类:XxxBuffer,比如ByteBuffer、CharBuffer、IntBuffer、DoubleBuffer等,最常用的是ByteBuffer、CharBuffer。 Buffer更像一个容器,用于盛装数据, 阅读全文
posted @ 2019-05-27 02:49 chy-x 阅读(609) 评论(0) 推荐(0) 编辑
摘要:前面介绍的是传统的IO,在java.io包下。传统的IO有一下缺点: 传统的IO是BIO(阻塞式的IO),使用read()系列方法读取数据时,如果没有可读取的数据,会一直阻塞该线程,读取到数据后,线程才继续往下执行。 不管是字节流还是字符流,底层都是基于字节实现的,如果不使用缓冲区,会一个字节一个字 阅读全文
posted @ 2019-05-27 01:08 chy-x 阅读(566) 评论(1) 推荐(0) 编辑
摘要:1、如果某个成员变量是敏感信息,不希望序列化到文件/网络节点中,比如说银行密码,或者该成员变量所属的类是不可序列化的, 可以用 transient 关键字修饰此成员变量,序列化时会忽略此成员变量。 transient只能修饰成员变量。 2、transient很方便,但是反序列化时,不能取得此成员变量 阅读全文
posted @ 2019-05-26 23:03 chy-x 阅读(6949) 评论(0) 推荐(1) 编辑
摘要:对象的序列化(Serialize):将内存中的Java对象转换为与平台无关的二进制流(字节序列),然后存储在磁盘文件中,或通过网络传输给另一个网络节点。 对象的反序列化(Deserialize):获取序列化的二进制流(不管是通过网络,还是通过读取磁盘文件),将之恢复为原来的Java对象。 要实现对象 阅读全文
posted @ 2019-05-26 15:34 chy-x 阅读(2500) 评论(0) 推荐(0) 编辑
摘要:RandomAccessFile类是Java中操作文件内容功能最强大的类,既可以读,也可以写。 RandomAccessFile支持随机访问,可以直接访问文件的任意位置,在文件的任意位置读写数据。如果要随机访问文件内容,RandomAccessFile是很好的选择。 Random,意为随机、任意,R 阅读全文
posted @ 2019-05-24 21:54 chy-x 阅读(2633) 评论(0) 推荐(0) 编辑
摘要:在Java中,把不同的输入/输出源(键盘、文件、网络连接等)中的有序数据抽象为流(stream)。 stream(流)是从起源(source)到接收(sink)的有序数据。 通过流的方式,Java可以使用相同的方式来访问、操作不同类型的输入/输出源,不管输入、输出节点是磁盘文件、网络连接,还是其他的 阅读全文
posted @ 2019-05-24 00:52 chy-x 阅读(470) 评论(0) 推荐(0) 编辑
摘要:File类代表与平台无关的文件、目录操作。File类可以操作文件、目录本身,但不能访问、修改文件的内容。 1、构造函数 File(String path); 1 //.代表当前项目的根目录 2 File file=new File("./1.txt"); Windows中用\,要转义,\\。 Lin 阅读全文
posted @ 2019-05-23 17:16 chy-x 阅读(268) 评论(0) 推荐(0) 编辑
摘要:Java的I/O通过java.io包下的类、接口来支持。在java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可分为字符流、字节流两大类。 字符流以字符为单位处理输入、输出操作,字节流以字节为单位处理输入、输出操作。 Java7在java.nio及其子包下提供了一系列全新的API,这些 阅读全文
posted @ 2019-05-23 15:42 chy-x 阅读(417) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示