【Java】使用FileInputStream和FileOutputStream进行文件操作(最后有小案例)

读完本文你能学会使用FileInputStream和FileOutputStream进行文件内容的输入输出。

在本文的最后有小案例:在指定目录下递归查询该目录下的所有子文件,进行文件的复制等,这些操作都是使用FileInputStream和FileOutputStream类进行文件操作完成的

  • 使用File类来打开一个文件,并可以使用API打印出文件的信息
// 获得文件的相关信息
public static void main(String[] args) throws IOException {
   
    // pathname:可以是绝对路径也可以是相对路径
    // 如果直接写文件名,默认是相对路径
    File file = new File("./test.txt");
    System.out.println(file.getName());
    System.out.println(file.getParent());
    System.out.println(file.getPath());
    System.out.println(file.getAbsolutePath());
    System.out.println(file.getCanonicalPath());
}
  • 使用File类创建文件
  • 使用File类创建单级/多级目录,删除单级/多级目录(删除多级目录以及目录下的所有文件)
// 创建普通文件和文件夹,并且删除普通文件和文件夹
public static void main(String[] args) throws IOException, InterruptedException {
   
    // test.txt文件不存在
    File file = new File("test.txt");
    // 创建文件,并立刻删除(为了效果显示中间使用thread进行了休眠)
    file.createNewFile(); // 创建文件
    Thread.sleep(3000);
    file.delete(); // 删
    // 创建文件,并在退出的时候删除该文件
    file.createNewFile(); // 创建文件
    Thread.sleep(3000);
    file.deleteOnExit(); // 不立即删除文件,而是在程序退出的时候删除
    Thread.sleep(300
    // 创建目录
    File dir = new File("./dir");
    dir.mkdir(); // 使用mkdir只能创建单级目录
    System.out.println(dir.isDirectory());
    Thread.sleep(1000);
    dir.deleteOnExit(); // 不立即删除文件夹,而是在程序退出的时
    File dirs = new File("./dir1/dir2/dir3");
    dirs.mkdirs(); // 使用mkdirs可以创建多级目录
    System.out.println(dirs.isDirectory());
    // 注意delete不能删除多级目录,只能通过递归的方式来删除多级目录
    // 调用deleteDir函数
    deleteDir("./dir1");
    Thread.sleep(1000);
}
public static void deleteDir(String basePath) {
   
    File file = new File(basePath);
    if (file.isFile()) {
   
        file.delete();
    }
    String[] dir = file.list();
    for (String d : dir) {
   
        deleteDir(basePath + "/" + d);
    }
    file.delete();
}
  • 显示目录下的所有文件(如果目录下有目录,不显示子目录下的文件)
  • 显示目录下的所有文件,包括子目录下的文件
// 显示所有文件列表
public static List<String> files = new ArrayList<>(); // 文件列表
public static void main(String[] args) {
   
    // 打印当前目录(.)下的所有文件
    File file = new File(".");
    String[] list = file.list(); // 使用list()方法可以返回当前目录下的所有文件
    System.out.println(Arrays.toString(list)); // 将String[]数组转换成Str
    // 打印当前目录下的所有文件及其子文件
    showAllFile(".");
    for (String f : files) {
   
        System.out.println(f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyzhang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值