java中的io流

java中的io流

io流就是数据传输的管道(对于java来说,我们通过对某个类的操作,来进行数据的传输,那么这个类就是io流)

在这里插入图片描述

file类

所有的数据都是以文件的形式储存的。

在学习io流之前,我们先学习file类来对文件进行操作。

public class file01 {
    /*
    * 学习file类的对象创建
    *
    * 一个三种方式(实际四种)
    */

    public static void main(String[] args) throws Exception {

//        //第一种创建方式
//        File file = new File("E:\\io");

        //第二种创建方式
        File file1=new File("E:\\io\\a.txt");

        //第是三种创建方式
//        File file2=new File("E:\\io");
//        File test = new File(file2, "test");

        /*
        * 学习file类创建文件
        *
        * 通过createNewFile方式创建文件,创建成功返回true,如果存在此文件返回false
        */
        boolean newFile = file1.createNewFile();
        System.out.println(newFile);

        //如果没有指明文件的创建路径,那么就会在java编译器中创建一个文件
        //如果创建文件的目录不存在,那么就是报错
        File file = new File("aa.txt");
        file.createNewFile();



        /*
        * 学习file类创建文件夹
        *
        * 通过mkdir创建一个文件夹,通过makirs创建多个文件夹
        *
        * */

        File file2 = new File("E:\\io1");
        //mkdir可创建一个文件夹
        boolean mkdir1 = file2.mkdir();
        System.out.println(mkdir1);

        File file3 = new File("E:\\io2\\io02\\io002");
        //mkdirs可创建多个文件夹
        boolean mkdirs2 = file3.mkdirs();
        System.out.println(mkdirs2);

        //注意:如果没有指明文件的创建路径,那么就会在java编译器中创建一个文件



        /*
        * 学习file类删除文件或文件夹
        *
        * 通过delete方法进行删除操作
        *
        * */
        System.out.println("--------------------------------------");
        File file4 = new File("E:\\io1\\2.txt");
        //如果被删除的文件夹下面有文件或文件夹,那么就不能进行删除
        System.out.println(file4.delete());

        File file5 = new File("a.txt");
        //如果没有指明路径,那么删除的是java编译器的文件或文件夹
        System.out.println(file5.delete());
        //注意:删除文件夹,文件夹里面必须是空的;删除文件,必须指明正确的文件路径,并且指出正确的文件名和文件类型



        /*
        * 学习file类的对文件夹或文件的改名或移动
        *
        *同renameTo方法进行改名或移动
        *
        * */
        System.out.println("---------------------------------------------------");
        File file6 = new File("E:\\io\\aaaaaa.txt");
        //需要调用renameTo方法,并传入新new  file对象来接收改名后的名字
        file6.renameTo(new File("E:\\io1\\a.txt"));
        //如果改名的路径和原来路径相同,名字不同,那么则进行改名
        //如果改名的路径和原来的路径不同,名字相同,那么则进行移动
        //如果改名的路径和原来的路径不同,名字不同,那么则进行移动并改名


        /*
        * 学习file类对文件或文件夹的判断
        *
        * 6种判断方法
        * */
        System.out.println("---------------------------------------------------");
        File file7 = new File("E:\\io");
        File file8 = new File("E:\\io");
        File file9 = new File("E:\\io\\a.txt");
        //exists判断文件是否存在
        System.out.println( file7.exists());
        //isDirectory判断是否为文件夹
        System.out.println(file8.isDirectory());
        //isFile判断是否为文件
        System.out.println(file9.isFile());
        //canRead判断文件是否可读
        System.out.println(file9.canRead());
        //canWrite判断文件是否可写
        System.out.println(file9.canWrite());
        //isHidden判断文件是否隐藏
        System.out.println(file8.isHidden());

        System.out.println("---------------------------------------------------");
        /*
        *
        * 学习file类对文件的获取
        *
        * */
        //绝对路径:从盘符到文件的名称,叫做绝对路径
        //相对路径:只告诉你相对于当前的文件位置
        //通过getAbsolutePath方法获取绝对路径
        System.out.println(file1.getAbsolutePath());
        //通过getPath方法获取相对路径
        System.out.println(file6.getPath());
        //通过getName方法获取名字(文件或文件夹的名字)
        System.out.println(file3.getName());

        File file10 = new File("bbb.txt");
        boolean newFile1 = file10.createNewFile();
        System.out.println(newFile1);
        //获取文件的长度
        System.out.println(file10.length());
        //获取空文件夹没有长度
        System.out.println(file3.length());
        //获取文件最后一次修改时间
        long l = file10.lastModified();
        Date data = new Date(l);
        System.out.println(data.toLocaleString());
    }
}
public class file02 {
    /*
    * 学习通过增强for打印文件下所有文件名称
    * 打印文件下文件的名称和目录
    *
    * */

    public static void main(String[] args) {
        File file = new File("D:\\HBuilderX");
        //通过增强for遍历改目录下所有文件名称
        String[] list = file.list();
        for (String str:list) {
            System.out.println(str);
        }
        //通过增强for遍历目录下所有文件目录和名称
        File[] files = file.listFiles();
        for (File str:files) {
            System.out.println(str);
            
                
        }
    }
}

io流的分类

可以根据输入的流向和数据类型分为两类。

流向:1. 输入流(读)

​ 2.输出流(写)

数据类型:1.字节数据

​ a.字节输入流(InputStream)

​ b.字节输出流(OutputStream)

​ 2.字符数据

​ a.字符输入流(Reader)

​ b.字符输出流(Writer)

注释:字符本质也是以字节的方式储存的。

后续会补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值