您的位置:首页 > 编程语言 > Java开发

Java基础知识21——IO流day01-IO概述&递归&File类

2019-02-01 14:49 141 查看
版权声明:版权本人所有,转载请标明出处,谢谢合作! https://blog.csdn.net/qq_36326332/article/details/86736325

IO概述:IO流用来处理设备之间的数据传输。

当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。
当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。
因此我们把这种输入和输出动作称为IO操作。

File类

[code] * File类概述:文件和目录路径名的抽象表示形式。
* 构造方法:
* 	public File(String pathname):根据一个路径得到File对象
* 	public File(String parent,String child):根据一个目录和子文件/目录得到File对象
* 	public File(File parent,String child):根据一个父File对象和一个子文件/目录得到一个File对象
*
* 绝对路径:固定不可改变的路径,以盘符开头
* 相对路径:相对某个参照物,不能以盘符开头
* 		在eclipse中相对路径性对应当前项目根目录
*成员方法:
* 创建功能
* 	public boolean createNewFile():当指定文件不存在时创建文件并返回true,否则返回false
* 	public boolean mkdir():当指定文件夹不存在时创建文件夹并返回true,否则返回false
* 	public boolean mkdirs():创建指定文件夹,当文件夹所在的目录不存在,则就一块创建了并返回true,否则返回false
*
* 删除功能
* 	public boolean delete():当指定的文件或文件夹存在时删除文件或者文件夹,并返回true,否则返回false
* 		注意:删除一个文件夹,这个文件夹下面不能有其他的文件和文件夹
*修改功能
*	public boolean renameTo(File dest):如果路径相同,就是改名;如果路径不同,就是改名并剪切
*
* 判断功能
* 	public boolean exists():判断文件或者文件夹是否存在,如果存在则返回true,否则返回false
* 	public boolean isAbsolute():判断File对象指向的路径是否是绝对路径,如果是绝对路径则返回true,否则返回false
* 	public boolean isDirectory():判断File对象指向的路径是否是文件夹,如果是则返回true,否则返回false
* 	public boolean isFile():判断File对象指向的路径是否是文件,如果是则返回true,否则返回false
* 	public boolean isHidden():判断File对象指向的路径是否是隐藏文件或者文件夹,如果是则返回true,否则返回false
*
* 获取功能
* 	public File getAbsoluteFile():以File对象的形式返回当前File对象所指向的绝对路径
* 	public String getAbsolutePath():返回File对象所指向的绝对路径
* 	public File getParentFile():以File对象的形式返回当前File对象所指向的父文件夹名
* 	public String getParent():返回File对象所指向的父文件夹名
* 	public String getName():获取文件或者文件夹的名称
* 	public String getPath():返回创建File对象时给的路径(创建的是相对路径,返回的是相对路径;创建的是绝对路径,返回的是绝对路径)
* 	public long lastModified():返回文件对象最后修改时间的毫秒值
* 	public long length():返回文件的内容大小。(单位:字节【B; 1KB=1024B】)
*	public String[] list():获取指定目录下的所有文件或者文件夹的名称数组。 注意:只有指向文件夹的File对象才可以调用该方法
* 	public File[] listFiles()获取指定目录下的所有文件或者文件夹的File数组。 注意:只有指向文件夹的File对象才可以调用该方法
*	public static File[] listRoots():返回的是所有的盘符
*	public File[] listFiles(FileFilter filter) :按文件过滤
*	public File[] listFiles(FilenameFilter filter):按文件名过滤

递归

递归概述:指在当前方法内调用自己的这种现象

递归分类:

  • 直接递归:直接递归称为方法自身调用自己
  • 间接递归:间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法

递归的作用原理以及注意事项:

 * 递归:
把大问题拆成很多小问题,然后再把小问题拆成更多的小问题,当我们把更多的小问题解决了,小问题也解决了,随着小问题的解决,大问题也随之解决了。
 
递归的注意事项:

  • 递归一定要有出口,否则内存溢出
  • 递归次数不宜过多,否则内存溢出
  • 构造方法不能递归使用。
[code]递归的举例:
* 需求:求5的阶乘
* 5! = 5 * 4 * 3 *2 * 1;//120
* 5! = 5 * 4!;			   //120
* 		4! = 4 * 3!;	   //24
* 			3! = 3 * 2!;   //6
* 				2! = 2 *1!;//2
* 					1! = 1;//1
* n! = n * (n-1)!;
public class 递归调用Demo {
public static void main(String[] args) {
//
double result = jieCheng(5);
System.out.println(result);
}

public static double jieCheng(double num) {
//出口
if (num == 1) {
return 1;
}else{
return num*jieCheng(--num);
}
}
}
*     public void show(int n){
*     //出口
*    		 if(n==0){
*     			return;
*     		 }
*     		show(n-1);
*     }
*
*     从前有个山,山上有个庙,庙里有个老和尚,老和尚在给小和尚讲故事
*     		 从前有个山,山上有个庙,庙里有个老和尚,老和尚在给小和尚讲故事
*     			 从前有个山,山上有个庙,庙里有个老和尚,老和尚在给小和尚讲故事
*     				 从前有个山,山上有个庙,庙里有个老和尚,老和尚在给小和尚讲故事
*     					......

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐