java File类和IO流

发布于:2022-12-14 ⋅ 阅读:(340) ⋅ 点赞:(0)

 File类:

File类用来表示一个目录或者文件

常用构造器:

常用方法:

//      常用方法:
//        表示的文件或目录是否真的存在?
        File   f3=new  File("C:\\Users\\lx\\Desktop\\JavaSe\\09.txt");
        File   f4=new  File("C:\\Users\\lx\\Desktop\\JavaSe02");
        System.out.println(f1.exists());
        System.out.println(f2.exists());
        System.out.println(f3.exists());
        System.out.println(f4.exists());


//        判断是否表示的是文件?
        System.out.println(f1.isFile());
        System.out.println(f2.isFile());
//        判断是否表示的是目录?
        System.out.println(f1.isDirectory());
        System.out.println(f2.isDirectory());

//        获取文件或目录信息
//        获取文件名或目录名
        System.out.println(f1.getName());
        System.out.println(f2.getName());

//        获取文件或目录的路径
        System.out.println(f1.getPath());
        System.out.println(f2.getPath());

//        获取文件或目录的可读、可写、可执行、是否是隐藏属性信息
        System.out.println(f1.canRead());
        System.out.println(f1.canWrite());
        System.out.println(f1.canExecute());
        System.out.println(f1.isHidden());

        System.out.println(f2.canRead());
        System.out.println(f2.canWrite());
        System.out.println(f2.canExecute());
        System.out.println(f2.isHidden());

//        获取最后修改时间
        System.out.println(new  Date(f1.lastModified()));
        System.out.println(new Date(f2.lastModified()));

//        获取内容的长度,单位是字节
        System.out.println(f1.length());//返回文件中的数据大小
        System.out.println(f2.length());//返回文件夹占用的空间,默认4096

IO流:

分类:

从传输方向上分为:输出流、输入流;

从处理单位上分为:字节流、字符流;

从功能上分为:节点流、高级流;

节点流:

字节流:

父类:InputStream、OutputStream

常用实例化子类:FileInputStream、FileOutputStream

字节流可以传送文本、图片、视频、音频等所有种类的文件。

字符流:

父类:Reader、Writer

常用实例化子类:FileReader、FileWriter

字符流只能传输文本类型的文件。

高级流:

转换流:

InputStreamReader、OutputStreamWriter

可以将字节流转化为字符流的流;

//        字节输入流
        FileInputStream   in=new FileInputStream("C:\\Users\\lx\\Desktop\\b\\22.txt");

//        转换输入流:就是一个字符流
//        首先需要一个字节输入流(节点流)
//        在此基础上转为字符输入流
        InputStreamReader   reader=new InputStreamReader(in);

缓冲流:

字节缓冲流:BufferedInputStream、BufferedOutputStream

字符缓冲流:BufferedReader、BufferedWriter

默认缓冲区大小:8192字节。

使用缓冲流读写原理:

将读取的数据先临时存储在缓冲区;

当缓冲区写满了,才会将缓冲区的数据写入目的端。

使用缓冲流的优点:

提高了IO效率,同时减少了对硬盘的损耗。

使用:同样是在先创建节点流的基础上使用高级流:

//        1、创建字节缓冲流
//        先创建字节流
        FileInputStream   in=new FileInputStream("C:\\Users\\lx\\Desktop\\b\\HelloWorld.txt");
        FileOutputStream  out=new FileOutputStream("d:\\HelloWorld.txt");

//        再创建字节缓冲流
        BufferedInputStream   bin=new BufferedInputStream(in);
        BufferedOutputStream   bout=new BufferedOutputStream(out);

序列化(反序列化)流:

ObjectInputStream、ObjectOutputStream

对象和字节码之间的转换。

注意事项:

对象需要序列化时必须实现Serializable接口!!!

给对象加上不变的版本号!!!

private static final long serialVersionUID = 1L;

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到