Java IO
File类
File类是代表与平台无关的文件或目录,Java中是文件和目录都是通过File来操作的,File类不能访问文件的内容,如果要访问文件则需要通过输入/输出流来实现
File file = new File("文件或路径");
File类提供了很多方法来操作文件和目录,下面列出一些常用的方法
- String getName(): 返回文件或路径(路径为最后一级子目录名)
- String getPath(): 返回路径名
- String getAbsolutePath(): 返回绝对路径
- boolean renameTo(File dest): 重命名,成功返回true
- boolean exists(): 判断文件是否存在
- boolean canWrite(): 是否可写
- boolean canRead(): 是否可读
- boolean isFile(): 是否为文件
- boolean isDirectory(): 是否为文件夹
- long lastModified(): 文件最后修改时间
- long length(): 文件内容长度
- boolean createNewFile(): 创建文件
- boolean mkdir(): 创建一个目录
- boolean delete(): 删除文件
- String[] list(): 所有子文件夹和文件的名称
- File[] listFiles(): 所有子文件夹和文件的File对象
Path类
Path类定位一个文件或者指明一个路径
Path path = Paths.get("文件或路径");
文件过滤
File()可以接收一个FilenameFilter过滤器,列出符合条件的文件
流的概念
流是数据源或数据目标的输入/输出设备的抽象表示,其中包过硬盘文件,通信链路或键盘
输入流和输出流
输入流
InputStream
输出流
OutputStream
字节流和字符流
字节流
字节流为二进制,二进制高速且高效,但是不易被阅读
字符流
十六进制
PrintWriter:拥有格式打印字符串和数字的方法
/**true表示不删除文件本来存在的内容**/
new PrintWriter(new FileWriter("路径",true));
节点流和处理流
节点流
可以从一个特定的IO设备(如磁盘,网络)读写数据的流,当节点流进行输入/输出时,程序直接连接到实际的数据源,和实际的输入/输出节点连接
处理流
对一个已存在的流进行连接或封装,通过封装后的流来实现数据读/写功能