java File类和IO流

 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值