今天学习了File类,及其里面对文件的操作,IO流。
Ps:File类的方法只能对文件自身的属性进行操作,不能改变文件的内容,如想改变文件的内容,请用IO流。
初始化:其有三个有参的构造方法,可以将该文件的绝对路径作为参数: File file = new File(“C:\\MyFile\\xxx.txt”);
也可以将利用拼接法
File file = new File(“C:\\MyFile” , ”xxx.txt”);
还可以用父路径(File对象)来拼接
File parent = new File(“C:\\MyFile”);
File file = new File(parent , “xxx.txt”);
file为一个File对象
文件是否可读:file.canRead();
文件是否可写:file.canWrite();
文件是否可隐藏:file.isHidden();
获得其文件名:file.getName();获得该文件相对路径:file.getPath();
获得该文件的绝对路径:file.getAbslutePath();
判断该file是否是文件:file.isFile();
判断该file是否是文件夹:file.isDirectory();
获得此file对象的父路径:file.getParent();
获得此文件的长度:file.length();
得到最后一次修改的时间:file.lastModified(); 返回值为毫秒数,想正常输出的新建一个SimpleDateFormat对象,书写你想要的表达效果。
绝对路径:明确说明某个盘符里的某个文件夹或文件名
相对路径:没有说明某个盘符,默认去找工作区间里的此对象。
创建文件:
file.creatNewFile();//按照file的路径名创建该文件
parentFile.mkdir();//创建上一层文件夹,包含从根到该文件所有文件夹。
首先判断其父路径的文件对象是否存在,如不存在,调用mkdirs方法建立缺少的所有目录。再判断该文件是否已经存在,如不存在,则调用createNewFile方法创建该文件。
输出指定目录下的所有文件信息:
方法:将此目录下的所有文件对象存入File数组中(包括文件,文件夹)。遍历该数组,得到每个File对象,进行自己的操作。其中:该方法可以加一个过滤器对象作为参数,就可以留下你想要的。
I:----------in----------输入流 - -- --读
O:----------out----------输出流 - -- --写
流: 数据流,一点点的输出或者是一点点的输入
IO流有多种分类方式:
按方向:输入流 内存到程序
输出流 程序到内存
注意:此处的按方向是站在程序的角度。
按单位分流:字节流-------操作二进制文件(图片、音频、视频)
字符流-------文本
GBK编码:1个英文字符用1个字节表示,1个中文字符用2个字节表示
UTF-8编码:1个英文字符用1个字节表示,1个中文字符用3个字节表示
按功能分流:基础流/结点流
处理流:往往是嵌套了基础流,使得流的功能更强大
字节输入流的基类: OutputStream
子类:FileOutputStream FilterOutputStream
| 子类:BufferedOutputStream
其中它们都有:read():一个一个字节的读取,返回值是此字符的ASCII码,读到文件末尾返回-1。
read(byte[] b):每次读取b数组长度的数组,返回的是读到的有效字节数,读取到文件末尾返回-1
字节输出流的基类: InputStream
两子类:FileInputStream FilterInputStream
| 子类:BufferedInputStream
创建输入输出流的时候要放入参数,输入流构造方法里的参数表示从哪儿读取内容,而输出流里面的构造方法的参数表示写在哪儿。
用完记得关流。