以数据的流向分类,能够读取字节的序列的API对象成为输入流(InputStream),能够写入字节序列的成为输出流(OutputStream)。字节是计算机数据的存储的形式,任何数据都可以使用字节流进行读写。
读取来源和写入目标可以是文件,内存,网络,数据库和文件。
InputStream和OutputStream两个抽象类构成了读写IO体系的框架基础。
字节流虽然可以操作任何的数据形式,但是对于占用多个字节的字符却不是很方便,需要知道,所以在JAVA中有专门提供了对于字符流的两个抽象类Reader和Writer
分类:
IO流按照操作对象:字节流和字符流
按照流的方向分:输入流和输出流
主要的流的体系图:每个输入流都有相应的输出流
在抽象类 Input/OutputStream ReaderWriter 后面跟着具体的实现子类
字符流
字符流主要对于处理文本内容的读写十分的方便,按照字符的输入和输出和字节流操作上没有区别,但是在读取和写入时的操作单位不再是byte。
获取文件的信息
已知当前目录下有两个文件,可以使用File文件对象的API读取其信息。
查询出文件的大小,名称,绝对路径,父目录,最近修改时间,是否隐藏文件
看下file对象的一些常用方法吧:
作用 | 函数签名 | 实用等级 |
---|---|---|
获取文件名 | String getName() | ***** |
磁盘文件是否存在 | boolean exists() | ***** |
获取文件的磁盘绝对地址 | String getAbsolutePath() | ***** |
列取文件夹下的文件列表 有过滤器 有文件名过滤器 file必须是文件夹才能使用 | File[] listFiles() File[] listFiles(FileFilter filter) File[] listFiles(FilenameFilter filter) | ***** |
创建文件夹 | boolean mkdir() | ***** |
创建文件 指定目录中创建指定前缀和后缀的文件 | boolean createNewFile() createTempFile(String prefix, String suffix, File directory) | ***** |
获取父目录 | String getParent()//上层文件路径 File getParentFile()//上层文件 | ***** |
是否隐藏 | boolean isHidden() | ***** |
删除文件 | boolean delete() | ***** |
还有其他的一些方法:如判断“是否可执行方法”,“是否可读”,“是否可写”等等权限的文件,更多请参见JDKAPI文档。