Java学习之文件及异常处理

import java.io.File;

/*
 * 目的:从根目录遍历,找出该盘下所有以.avi以及.rmvb、.mp4结尾的文件
 *
 *  1、遍历目录
 * 		是文件:
 * 			判断:
 * 				是:.avi或者.rmvb或者.mp4结尾的文件,输出文件地址以及文件名
 * 				不是:忽略
 *		是目录:重复步骤1
 *
 */
public class FileDemo {
	public static void main(String[] args) {
		File  F = new File("D:\\");
		File [] arrayFile = F.listFiles();
		for(File file:arrayFile){
			recursionFind(file);//调用函数处理
		//	System.out.println(file);
		}
		System.out.println("查找结束");
	}

	private static void recursionFind(File file) {
		// TODO Auto-generated method stub
		if(file.isFile()){//判断是否为文件
			if (file.getName().endsWith(".avi")||file.getName().endsWith(".rmvb")||file.getName().endsWith(".mp4")) {
				System.out.println(file.getPath()+"------"+file.getName());
			}
		}
		else if(file.isDirectory()){//判断是否为目录     注①
			File [] dir = file.listFiles();  //获取此文件夹下file列表
			if(dir!=null){//判断是否为空,如果不为空则继续,为空会报错   NullPointerException  注②
				for(File sonfile:dir){
				//	if(sonfile!=null){//判断是否为空,如果不为空则继续,为空会报错    NullPointerException
						recursionFind(sonfile);
				//	}
				}
			}
		}
	}

}

  注①:isFile()与isDirectory()两个判断过后有第三种可能。

注②:目录下为空指针,C盘下此类目录尤其多

——————————————————————————————————————————————————————————————————————————————

File类的功能
A:创建功能

public boolean createNewFile()创建新文件

public boolean mkdir() 创建新目录

public boolean mkdirs()  创建新目录,允许目录下面有目录

B:删除功能

  public boolean delete() 删除目录,如果目录中有内容,则删除失败

C:重命名功能

  public boolean renameTo(File dest)重命名文件,dest为重命名的名字,可以给出绝对路径,作为剪切功能使用
D:判断功能

  public boolean isDirectory()判断是否为一个目录

  public boolean isFile()判断是否为一个文件

  public boolean exists()判断文件是否存在

  public boolean canRead()判断是否可读

  public boolean canWrite()判断是否可写

  public boolean isHidden()判断是否为隐藏文件

E:获取功能

  public String getAbsolutePath()获取绝对路径

  public String getPath()//获取路径

  public String getName()//获取文件名

  public long length()//获取文件大小(单位为字节)

  public long lastModified()//获取最后一次修改的时间,返回的是一个long型数值time

      Date date = new Date(time);

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

      String s = sdf.format(date);

      System.out.println(s);//获取到我们能看懂的时间

F:高级获取功能

  public String[] list()//返回一个字符数组,此目录下的文件名

  public File[] listFiles()//返回此目录下的文件列表

G:过滤器功能

    查询API

————————————————————————————————————————————————————————————————————————————

程序的异常:Throwable

  严重问题:Error  此类问题我们不能解决,这种问题一般很严重,例如:内存泄漏

  一般问题:Exception

    编译期问题:不是RuntimeException及其子类的异常必须进行处理,因为此类异常不处理,编译就不能通过,无法运行。

    运行期问题:RuntimeException及其子类,这类问题一般是代码不够严谨造成的,需要修正代码。

异常的处理:

JVM的默认处理

  把异常的名称,原因,位置等信息输出到控制台,但是程序不再继续执行。

程序员处理

  try...catch...finally

    自己编写处理代码,后面的程序可以继续执行

  throws

    把自己无法处理的问题在方法上声明,让调用者知道。

Throws和Throw的区别

Throws

  用在方法声明后面,跟的是异常类名

  可以跟多个异常类名,用逗号隔开

  表示抛出异常,由该方法的调用者来处理

  throws表示出现异常的一种可能性,该异常不一定发生

Throw

  用在方法体内,跟的是异常对象名

  只能抛出一个异常对象名

  表示抛出异常,由方法体内的语句处理

  Throw则是抛出了异常,执行Throw则一定抛出了某种异常

finally,final,finalize的区别

final:最终的意思,可以修饰类,成员变量,成员方法

  修饰类,该类不能被继承

  修饰变量,该变量是常量

  修饰方法,该方法不能被重写

finally:是异常处理的一部分,用于释放资源

一般来说,代码肯定会执行,特殊情况:在执行finally之前jvm推出了

finalize:是Objective类的一个方法,用于垃圾回收

下面的代码值得好好分析:在执行finally之前,return返回路径已经形成,即时执行finally中的语句,return的值依然不变,但是如果在finally中添加return语句,情况则不一样。

时间: 2024-08-26 23:51:46

Java学习之文件及异常处理的相关文章

Java学习-018-EXCEL 文件写入实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_name 写入 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件写入: EXCEL文件 3 * 4 * @author Aaron.ff

Java学习-017-EXCEL 文件读取实例源代码

众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 Sheet 页中的数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感激! 不多言,小二上码咯... 通过 sheet_index 读取 EXCEL 数据源代码如下所示,敬请参阅! 1 /** 2 * @function 文件读取: EXCEL文件 3 * @description 通过EXCE

Java学习-022-Properties 文件数据写入

Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. 小二上码...若有不足之处,敬请大神指正,不胜感激! Properties 文件写入源码如下所示: 1 /** 2 * @function write data to text file by Properties 3 * 4 * @author Aaron.ffp 5 * @version V1.

Java学习-019-Properties 文件读取实例源代码

在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可以方便的修改 ini 配置文件.在 Java 中对应的配置文件为 properties 格式的文本文件,其对应的内容格式为 “键=值” ,文本注释信息可以用 “#” 注释.同时 Java 语言中对应的类为 Properties(java.util.Properties),即为读取 propertie

黑马程序员-JAVA学习之文件夹的复制和遍历所有文件

--------android培训.java培训.期待与你交流!-------- JAVA的文件夹复制由于不知道文件夹里面有多少文件夹,所以使用递归方法遍历里面的所有文件夹和文件,如果是文件,则直接复制到目标文件夹,如果是文件夹,则的目标地方创建对应的同名文件夹,由于文件有各种各样的类型,比如视频,文档,图片等.所以要用到的主要是字节流对象,而不是用字符流对象,在这里用到的几个类分别是 1.File类,文件和目录路径名的抽象表示形式.(即表示既可以是一个文件,也可以是一个文件夹,是一个有分隔符的

java学习【文件IO】

博客:http://blog.csdn.net/muyang_ren 1.快速读取一个文本文件,将文件的内容输出到一个新文件: package lhy.java_day3.oop; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; impor

java学习之文件基本操作

一.File类 文件的创建 package file; import java.io.File; import java.io.IOException; public class CreateFile { public static void main(String[] args) { // TODO 自动生成的方法存根 File file=new File("C:\\Users\\Public\\Desktop\\demo.txt"); try{ file.createNewFile

Java学习---下载文件并且对文件编码

import java.io.IOException; import java.net.URLEncoder; import sun.misc.BASE64Encoder; public class FileUtils { /** * 下载文件时,针对不同浏览器,进行附件名的编码 * * @param filename * 下载文件名 * @param agent * 客户端浏览器 * @return 编码后的下载附件名 * @throws IOException */ public stati

Java学习-040-级联删除目录中的文件、目录

之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录.此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈.....若发现有错误,也请告知,我会去修改订正,非常感谢! 闲话少述,直接上码了! 1 /** 2 * Aaron.ffp Inc. 3 * Copyright (