JAVA学习笔记----File类和IO流


JZX:

今天学习了File类,及其里面对文件的操作,IO流。

Ps:File类的方法只能对文件自身的属性进行操作,不能改变文件的内容,如想改变文件的内容,请用IO流。

File类:

初始化:其有三个有参的构造方法,可以将该文件的绝对路径作为参数:   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对象

文件是否可读: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对象,进行自己的操作。其中:该方法可以加一个过滤器对象作为参数,就可以留下你想要的。

IO流:

I:----------in----------输入流 - -- --读

O:----------out----------输出流 - -- --写

流: 数据流,一点点的输出或者是一点点的输入

IO流的分类:

IO流有多种分类方式:

     按方向:输入流   内存到程序

                  输出流  程序到内存

  注意:此处的按方向是站在程序的角度。

     按单位分流:字节流-------操作二进制文件(图片、音频、视频)

                        字符流-------文本

                       GBK编码:1个英文字符用1个字节表示,1个中文字符用2个字节表示

                       UTF-8编码:1个英文字符用1个字节表示,1个中文字符用3个字节表示

     按功能分流:基础流/结点流

                 处理流:往往是嵌套了基础流,使得流的功能更强大

IO流的发展:

字节输入流的基类:       OutputStream

      子类:FileOutputStream        FilterOutputStream

                                | 子类:BufferedOutputStream

   其中它们都有:read():一个一个字节的读取,返回值是此字符的ASCII码,读到文件末尾返回-1。

                read(byte[] b):每次读取b数组长度的数组,返回的是读到的有效字节数,读取到文件末尾返回-1

字节输出流的基类:       InputStream

     两子类:FileInputStream        FilterInputStream                    

                                | 子类:BufferedInputStream

创建输入输出流的时候要放入参数,输入流构造方法里的参数表示从哪儿读取内容,而输出流里面的构造方法的参数表示写在哪儿。

 

用完记得关流。

你可能感兴趣的:(JAVA,输入输出,JAVA_NOTE)