Java

File

作用

  • 创建对象定位文件,可以删除、获取文件信息等。但不能读写文件内容。

构建对象的方式

  • File file = new File(“文件/文件/绝对路径/相对路径”);

File类创建对象

方法名称 说明
public File(String pathname) 根据文件路径创建文件对象
public File(String parent,String child) 从父路径名字符串和子路径名字符串创建微模块对象
public File(File parent,String child) 根据父路径对应文件对象和子路径名字符串创建文件对象
  • File对象可以定位文件和文件夹
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的

绝对路径和相对路径

  • 绝对路径:从盘符开始(一般表示本机文件,导入其他平台不一定能用)

    • 使用单反斜杠时,文件名可能会和转义字符重复所以时用双斜杠

      1. File file1 = new file("D:\\itheima\\a.txt")
  • 相对路径:不带盘符,默认直接到当前工程下的目录寻找文件

      1. File file2 = new File("模块名\\a.txt")
    • 如果没有模块则直接使用文件路径

对比
  • 绝对路径是带盘符的,依赖当前系统
  • 相对路径不带盘符的,默认相对到工程下开始寻找文件

判断文件类型、获取文件信息功能

方法名称 说明
public boolean isDirectory() 测试此抽象路径名表示的File是否为文件夹
public boolean isFile() 测试此抽象路径名表示的Files是否为文件
public boolean exists() 测试此抽象路径名表示的Files是否存在
public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
public String getPath() 将此抽象路径名转换为路径名字符串
public String getName() 返回由此抽象路径名表示的文件或文件夹的名称(带后缀名)
public long lastModified() 返回文件最后修改的时间毫秒值

创建文件的功能

方法名称 说明
public boolean createNewFile() 创建一个新的空的文件夹
public boolean mkdir() 只能创建一级文件夹
public boolean mkdirs() 可以创建多级文件夹

删除文件

方法名称 说明
public boolean delete() 删除由此抽象路径名表示的文件或空文件夹
  • delete方法直接删除不走回收站;如果删除的是一个文件,
  • 文件占用也可以直接删除

遍历功能

方法名称 说明
public String[] list() 获取当前目录下所有的“一级文件名称”到一个字符串数组中去返回
public File[] listFiles()(常用) 获取当前目录下所有“一级文件对象”到一个文件对象数组中去返回。(重点)
注意事项 listFiles方法
  • 当调用者不存在时,返回NULL
  • 当调用者是一个文件时,返回null
  • 当调用者是一个空文件夹时,返回一个长度为0的数组
  • 当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容

递归

说明

  • 方法直接调用自己或者间接调用自己的形式成为方法递归(recursion)
  • 递归作为一种算法在程序设计语言中广泛应用

形式

  • 直接递归:方法自己调用自己
  • 间接递归,方法调用其他方法,其他方法又调回方法自己。

注意事项

  • 递归如果没有控制豪终止,会出现递归死循环,导致内存溢出现象

三要素

  • 递归的公式:f(n) = f(n-1)*n;
  • 递归的终结点:f(1)
  • 递归的方向必须走向终结点

javaheima15 递归的更多相关文章

  1. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

  2. 算法笔记_013:汉诺塔问题(Java递归法和非递归法)

    目录 1 问题描述 2 解决方案  2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...

  3. Android 算法 关于递归和二分法的小算法

     // 1. 实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1. package demo; public class Mytest { public st ...

  4. 二叉树的递归实现(java)

    这里演示的二叉树为3层. 递归实现,先构造出一个root节点,先判断左子节点是否为空,为空则构造左子节点,否则进入下一步判断右子节点是否为空,为空则构造右子节点. 利用层数控制迭代次数. 依次递归第二 ...

  5. 递归实现n(经典的8皇后问题)皇后的问题

    问题描述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上 ...

  6. C语言用分别用递归和循环求数字的阶乘的方法

    以下代码均为 自己 实现,嘻嘻! 参考文章:http://blog.csdn.net/talk_8/article/details/46289683 循环法 int CalFactorial(int ...

  7. C#递归解决汉诺塔问题(Hanoi)

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace MyExamp ...

  8. Java之递归求和的两张方法

    方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ ...

  9. C#语言基础——递归

    递归 一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出 ...

  10. SQL Server封闭掉 触发器递归

    SQL Server关闭掉 触发器递归SQL Server  是有一个开关, 可以关闭掉 触发器递归的.EXEC sp_dboption '数据库名字', 'recursive triggers', ...

随机推荐

  1. 初识Node

    Node的定义:一个搭建在Chrome JavaScript运行时上的平台,用于构建高速.可伸缩的网络程序.   Node构建与JS之上,在服务器端,Node使用V8虚拟机,执行的是本地机器码,省去了 ...

  2. BIP设计器代码不生效的问题解决方案

    bip高级设计器里的前端代码:0租户问题解决在iuap_yonbuilder_service库里的hpa_extcode表hpa_extcode表里搜索billno字段,对应高级设计器里的单据编码拿到 ...

  3. Django Cannot assign "A1": "B1" must be a "C1" instance.

    Django Cannot assign "A1": "B1" must be a "C1" instance. 原因:使用了外键 说明:如 ...

  4. C++ 11 std::mem_fn

    mem_fn 想到member function 成员函数 这还真就是用来调用成员函数的 普通的函数我们通过函数指针可以调用,但对于成员函数的调用稍微复杂一点,需要对象,也即this指针 因为成员函数 ...

  5. 为什么常用Formdata对象来上传图片

    一.上传的数据体格式Content-Type 1.application/x-www-form-urlencoded 2.application/json 3.multipart/form-data ...

  6. gitea 常用命令

    gitea 常用命令   配置文件位置 /home/custom/conf/app.ini cd //home启动nohup ./gitea web & [root@iZ4jbz0xj0nx7 ...

  7. Flink 同时按照计数和时间触发窗口计算

    自定义trigger  继承 抽象类 Trigger<T, TimeWindow> 主要实现 Trigger类的四个方法(onElement.onEventTime.onProcessin ...

  8. vue项目的两种构建工具Vue CLI和Vite

    Vue CLI官方项目搭建工具,使用的打包器是webpack,webpack使用的模块化规范是commonjs模块: Vite主要特点是开发环境启动迅速,因为是使用的ES模块,这是在现代浏览器开始原生 ...

  9. freertos 启动任务调度器后卡在svc 0,汇编停在了0x0800014A E7FE B 0x0800014A

    分别引导加载程序和应用程序(带有或不带有FreeRTOS)都可以正常工作. 引导加载程序和应用程序(无需FreeRTOS)可以完美运行. 但是,如果我在应用程序中使用freeRTOS并完成两项任务(显 ...

  10. 解决动态class展示问题

    由于部分涉及到隐私,就打马赛克了 比如这个小问题,我有这个动态的class,里面是十几个类似btn的按钮,然后每个btn下面又有子多选框,一开始是我点击那个下面的子级他的父级就被选中,默认选中第一个父 ...