sixteen day("File类","递归","IO流概述及分类")

File类

File:代表文件和目录路径名的抽象表示

  • 文件和目录可以通过File封装成对象
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅只是一个路径名而已,它可以存在,也可以不存在,将来是要通过具体的操作把这个路径的内容转换为具体存在的
构造方法
方法名作用
File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
File(String parent,String child)从父路径字符串和子路径字符串创建新的File实例
File(File parent,String child)从父抽象路径名和子路径名字符串创建新的File实例
创建功能
方法名作用
public boolean createNewFile()当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
public boolean mkdir()创建由此抽象路径名命名的目录
public boolean mkdirs()创建由此抽象路径名命名的目录,包括任何不存在的父目录
判断和获取功能
方法名作用
public boolean isDirectory()测试此抽象路径名表示的File是否为目录
public boolean isFile()测试此抽象路径名表示的File是否为文件
public boolean exists()测试此抽象路径名表示的File是否存在
public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
public String getPath()将此抽象路径名转换为路径名字符串
public String getName()返回由此抽象路径名表示的文件或目录的名称
public String[] list()返回此路径名表示的目录中的文件和目录的名称字符串数组
public File[] listFiles()返回此抽象路径名表示的目录中的文件和目录的File对象数组
删除功能
方法名作用
public boolean delete()删除由此抽象路径名表示的文件或目录

绝对路径和相对路径的区别

  • 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
  • 相对路径:必须使用取自其他路径名的信息进行解释

删除目录时的注意事项

  • 如果一个目录中有内容(目录,文件),不能直接删除,应该先删除目录中的内容,最后才能删除目录

递归

递归是指在方法定义中调用方法本身的现象

递归解决问题的思路

  • 把一个复杂的问题层层转化为为一个与原问题相似的规模较小的问题来求解
  • 递归策略只需要少量的程序就可描述出解题过程所需要的多次重复计算

递归解决问题要找到两个内容

  • 递归出口:否则会出现内存溢出
  • 递归规则:与原问题相似的规模较小的问题

IO流概述及分类

IO流分类

  • 按照数据的流向(读进去,写出来)
    输入流:读数据
    输出流:写数据
  • 按照数据类型分类
    字节流
    字节输入流;字节输出流
    字符流
    字符输入流;字符输出流

IO流一般按照数据类型进行分类
两种流在什么情况下使用?

  • 如果数据用windows自带的记事本软件打开,我们能读懂里面的内容,就用字符流,否则就用字节流
  • 如果不知道使用哪种类型的流,就使用字节流,因为字节流是万能的流
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个用 C 语言递归实现的整数转换英文表示的函数: ```c #include <stdio.h> void convert(int n); int main() { int n; printf("请输入一个整数:"); scanf("%d", &n); convert(n); return 0; } void convert(int n) { if (n < 0) { printf("负"); convert(-n); } else if (n >= 1000000) { convert(n / 1000000); printf("million "); convert(n % 1000000); } else if (n >= 1000) { convert(n / 1000); printf("thousand "); convert(n % 1000); } else if (n >= 100) { convert(n / 100); printf("hundred "); convert(n % 100); } else if (n >= 20) { switch (n / 10) { case 2: printf("twenty "); break; case 3: printf("thirty "); break; case 4: printf("forty "); break; case 5: printf("fifty "); break; case 6: printf("sixty "); break; case 7: printf("seventy "); break; case 8: printf("eighty "); break; case 9: printf("ninety "); break; } convert(n % 10); } else { switch (n) { case 0: printf("zero"); break; case 1: printf("one"); break; case 2: printf("two"); break; case 3: printf("three"); break; case 4: printf("four"); break; case 5: printf("five"); break; case 6: printf("six"); break; case 7: printf("seven"); break; case 8: printf("eight"); break; case 9: printf("nine"); break; case 10: printf("ten"); break; case 11: printf("eleven"); break; case 12: printf("twelve"); break; case 13: printf("thirteen"); break; case 14: printf("fourteen"); break; case 15: printf("fifteen"); break; case 16: printf("sixteen"); break; case 17: printf("seventeen"); break; case 18: printf("eighteen"); break; case 19: printf("nineteen"); break; } } } ``` 该函数的基本思路是,根据数字的大小递归地进行转换。如果数字小于 0,则先输出 "负",然后将数字取反再进行转换。如果数字大于等于 1000000,则先转换它的百万位,然后输出 "million",再转换它的其他位。如果数字大于等于 1000,则先转换它的千位,然后输出 "thousand",再转换它的其他位。如果数字大于等于 100,则先转换它的百位,然后输出 "hundred",再转换它的其他位。如果数字大于等于 20,则根据它的十位输出对应的英文单词,然后再转换它的个位。如果数字小于 20,则根据它本身输出对应的英文单词。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

命运本如此,莫问何所以

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

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

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

打赏作者

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

抵扣说明:

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

余额充值