IO流

本文详细介绍了Java中的IO流,包括File类的使用,如创建、删除文件和目录,以及IO流的分类和操作,如字节流、字符流、缓冲流的读写方法。还讨论了文件的乱码问题和转换流的使用,强调了在处理文本数据时使用字符流的重要性。
摘要由CSDN通过智能技术生成

IO流:

作用:
1,可以将数据从本地文件中取出来

2,可以将数据从内存保存到本地文件

File类:
1,在读写数据时告诉虚拟机要操作的(文件/文件夹)在哪

2,对(文件/文件夹)本身进行操作。包括创建,删除等。

File:它是对文件和目录路径名的抽象表示

文件和目录可以通过File封装成对象

File封装的对象仅仅是一个路径名,它可以是已存在,也可以是不存在的

File的构造方法:
File(String pathname) ; 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例

File(String parent , String child) ; 从父路径名 字符串和子路径名 字符串创建新的File实例

File(File parent , String child); 从父抽象路径名和子路径名字符串创建新的File实例

绝对路径与相对路径:
绝对路径是 从盘符开始
相对路径是 相对当前项目下的路径

创建方法:

public boolean createNewFile(); 创建一个新的空文件
注意:
如果文件已存在,创建失败返回false。
如果文件不存在,创建成功返回true。

**createNewFile();**这个方法不管调用者有没有给出后缀名,只能创建文件

public boolean mkdir(); 创建一个单级文件夹
注意:
只能创建单级文件夹,不能创建多级文件夹
不管调用者有没有给出后缀名,mkdir();只能创建文件夹

public boolean mkdirs(); 创建一个多级文件夹
注意:
可以创建单级文件夹,也可以创建多级文件夹
不管调用者有没有给出后缀名,mkdirs();只能创建文件夹

删除方法:

public boolean delete(); 删除空文件夹或空文件

注意:
此方法删除的文件不走回收站,直接从硬盘里删除
如果删除的是文件那么直接删除,如果是文件夹,那么只能删除空文件夹
所以得出如果删除有内容的文件夹是不行的,并且删除有内容的文件也是不行的

File类的判断和获取方法:
public boolean isDirectory(); 测试此抽象路径名表示的File是否为目录

public boolean isFile(); 测试此抽象路径名表示的File是否为文件

public boolean exists(); 测试此抽象路径名表示的File是否存在

public String getName(); 返回此抽象路径名表示的文件或目录的名称

**public File[ ] listFiles();**获取当前文件夹下的所有文件和文件夹的File对象,并把这些对象封装到数组中返回
包括隐藏文件和隐藏文件夹都可以获取。
注意事项:
1,当调用者是一个文件时:返回的数组记录的是null,强行遍历会出现空指针
2,当调用者是一个空文件夹时:返回一个长度为0的数组,遍历不会报错
3,当调用者是一个有内容的文件夹时:获取当前文件夹下的所有文件和文件夹的File对象,并把这些对象封装到数组中返回
4,当调用者是一个有权限才能访问的文件时:返回的数组记录的是null
在这里插入图片描述

public static void main(String[] args) {
   
        File file = new File("C:\\");
        File[] files = file.listFiles();
        for (File file1 : files) {
   
            System.out.println(file1);
        }
    }
}

IO流:

可以实现数据的永久化存储
目的:

1,将数据写到硬盘当中,实现数据的永久化存储

2,读取文件中已经存在的数据。

其中: I:表示intput,是数据从硬盘进内存的过程吗,称为读

​ O:表示output,是数据从内存到硬盘的过程,称为写

IO的数据传输,可以看做是一种数据的流动,按照流动的方向,以内存为参照物,进行读写操作的
理解为:内存在读,内存在写

IO流的分类:在这里插入图片描述
纯文本文件定义:用windows记事本打开能读的懂,那么这样的文件就称为纯文本文件

字节流写数据:
1,创建字节输出流对象
注意:如果文件不存在,那么会自动创建文件
如果文件存在,会把文件清空

创建对象时有两个参数一个是File对象,一个是boolean类型的append开关称为续写开关

如果不写,第二个参数表示默认的false代表不要续写,那么创建对象的这行代码会清空文件!
如果写了第二参数true,表示需要续写,那么创建对象的这行代码不会清空文件!

FileOutputStream fos = new FileOutputStream("D:\\a.txt");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值