欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

递归+IO(字节流)

程序员文章站 2022-04-15 20:23:25
这里写自定义目录标题十三、递归递归:指在当前方法内调用自己的这种现象递归的分类:直接递归,间接递归直接递归称为方法自身调用自己间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出构造方法,禁止递归递归的使用前提:当调用方法的时候,方法的主体不变,每次调用参数的方法不同,可以使用递归FileFilter 接口:用于抽象路径名( Fi...

十三、递归
递归:指在当前方法内调用自己的这种现象
递归的分类:直接递归,间接递归
直接递归称为方法自身调用自己
间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

注意事项:
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出
在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出
构造方法,禁止递归

递归的使用前提:
当调用方法的时候,方法的主体不变,每次调用参数的方法不同,可以使用递归

FileFilter 接口:用于抽象路径名( File 对象)的过滤器
作用:用来过滤文件( File 对象)
抽象方法:用来过滤文件的方法
boolean accept(File pathname)测试指定抽象路径名是否应该包含在某个路径名列表中
参数:File pathname:使用listFlies方法遍历目录,得到的每一个文件对象

FileFilter 接口:实现此接口的类实例可以用于过滤器文件名
作用:用来过滤文件名称
抽象方法:用来过滤文件的方法
boolean accept(File dir,String name)测试指定文件是否应该包含在某一文件列表中
参数:
File dir:构造方法中传递的被遍历的目录
String name:使用listFiles方法遍历目录,获取每一个文件/文件夹名称

注意:两个过滤器接口是没有实现类的,需要我们自己写实现类,重写过滤的方法 accept ,在方法中自己定义过滤的规则

十四、IO流
input / output 数据(字符,字节)一个字符=两个字节,一个字节=8个二进制位
输入流 输出流
字节流 字节输入流InputStream 字节输出流OutputStream
字符流 字符输入流Reader 字符输出流Writer

字节流
一切文件数据在 存储时,都是以二进制数字的形式保存,都是一个一个的字节,传输时一样如此

字节输出流(OutputStream)
写入数据的原理(内存–>硬盘)
java程序 --> JVM 虚拟机 --> os(操作系统) --> os调用写数据的方法 --> 把数据写入到文件中
字节输出流的使用步骤:
1.创建一个 FileOutputStream 对象,构造方法中传递写入数据的目的地
2.调用 FileOutputStream 对象的方法 write ,把数据写入到文件中
3.释放资源(流使用会占用一定的内存,使用完毕要把内存清空,提高程序的效率)

一次写入多个字节:
如果写入的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
如果写入的第一个字节是负数,那第一个字节会和第二个字节,两个字节组成一个中文显示,查询系统默认码表(GBK)

续写:
FileOutputStream(String name, boolean append)
FileOutputStream(File file, boolean append)

换行:
Windows:\r\n
Linux:\n
Mac:\r

字节输入流(InputStream)
FileInputStream:文件字节输入流,把硬盘文件中的数据,读取到内存中使用

读取数据的原理(硬盘 --> 内存)
java程序 --> JVM --> OS --> OS读取数据的方法 --> 读取文件

字节输入流的使用步骤:
1.创建一个 FileInputStream 对象,构造方法中绑定要读取的数据源
2.调用 FileOutputStream 对象的方法 read ,读取完件
3.释放资源

本文地址:https://blog.csdn.net/m0_47249330/article/details/113954718

相关标签: java