JAVA--File类与IO流

File类

可以对硬盘上的文件以及目录进行操作,如查看文件或目录的属性信息,创建,删除文件/目录.但是不能查看或修改文件的内容,若要修改,应使用输入/输出流.

常用构造器

File(String pathname):指定一个路径,创建一个File对象.

File(File parent,String child):在指定parent路径下,创建一个child的File对象.

File(String parent,String child):在指定parent路径下,创建一个child的File对象.

路径:文件的路径写到文件的扩展名为止.目录的路径写到当前目录名称为止.

常用方法

boolean exists():判断指定位置的File对象是否存在.

boolean isFile():查看指定路径是否是文件.

boolean isDirectory():查看指定路径是否是目录.

String getName():返回对象的名称.

long lastModified():文件最后修改时间(距1970-1-1 0:00:00的毫秒数).

boolean isAbsolute():是否是绝对路径.

String getAbsolutePath():获取绝对路径.

String getParent():获取父路径.

long length():获取文件大小(单位字节).

File[] listFiles:获取目录里的file对象,包括所有文件和子目录.

绝对路径:从根目录盘符开始书写.

Windows:D:\a\f.txt

Linux:/home/scott

以上方法的示例代码如下

import java.io.File;
import java.util.Arrays;

public class FileTest {
    public static void main(String[] args) {
        File file=new File("File01.txt");
        File fileDir=new File("D://FileTest");
        /*boolean exists() 判断是否存在这个File对象*/
        boolean f=file.exists();
        System.out.println("是否存在这个file对象:"+f);
        /*boolean isFile():查看指定路径是否是文件.*/
        f=file.isFile();
        System.out.println("这个对象是否是文件:"+f);
        /*boolean isDirectory():查看指定路径是否是目录.*/
        f=fileDir.isDirectory();
        System.out.println("这个对象是否是目录:"+f);
        /*String getName():返回对象的名称.*/
        String str=file.getName();
        System.out.println("这个对象的名称是:"+str);
        /*long lastModified():文件最后修改时间(距1970-1-1 0:00:00的毫秒数).*/
        long time=file.lastModified();
        System.out.println("最后修改距离纪元的毫秒数:"+time);
        /* boolean isAbsolute():是否是绝对路径.*/
        f=fileDir.isAbsolute();
        System.out.println("是否是绝对路径:"+f);
        /*String getAbsolutePath():获取绝对路径.*/
        String path=file.getAbsolutePath();
        System.out.println("获取绝对路径:"+path);
        /*String getParent():获取父路径.*/
        path=fileDir.getParent();
        System.out.println("父路径:"+path);
        /*long length():获取文件大小(单位字节).*/
        /*文件内容为 ABCDEFG0123456789 */
        long size=file.length();
        System.out.println("文件的大小为:"+size+"字节");
        /*File[] listFiles:获取目录里的file对象,包括所有文件和子目录.*/
        File[] arr=fileDir.listFiles();
        System.out.println("该目录下的文件夹及文件:"+Arrays.toString(arr));
    }
}

运行结果

是否存在这个file对象:true
这个对象是否是文件:true
这个对象是否是目录:true
这个对象的名称是:File01.txt
最后修改距离纪元的毫秒数:1535192360022
是否是绝对路径:true
获取绝对路径:E:\IDEA\IO\File01.txt
父路径:D:\
文件的大小为:17字节
[D:\FileTest\File1, D:\FileTest\File2]

相对路径:相对某一文件或目录的路径,不是从根目录开始写.

1.f2.txt相对于a目录的路径:

Windows:b\f2.txt

Linux:b/f2.txt

2.f3.txt相对f2.txt的路径.

Windows:  ../c/f3.txt

Linux:  ..\c\f3.txt

IO流

 我们在做项目时,除了自定义的一些数据外,还可能需要从"外界"
    引入数据,或者将数据导出到"外界"。这时,我们需要I/O操作。
     外界:指的可能是  键盘,显示器,硬盘,另外一个程序
  输入:又叫读入操作
           数据时从"外界"流向程序,比如经常使用的Scanner类.
  输出:又叫写出操作
           数据时从程序流向"外界",比如我们向控制台输出信息.

  流: 就是数据序列, 一经创建成功,就会打开一个通道。所以使用完
       应该进行关闭操作。

IO流的分类

  1. 按照流向分类:输入流与输出流
  2. 按照处理的数据单位分类:字节流与字符流
  3. 按照功能分类:节点流与处理流

             

猜你喜欢

转载自blog.csdn.net/bujiujie8/article/details/82049257