`
612星球
  • 浏览: 9338 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

十一.文件与异常

阅读更多
java操作文件,使用的类File类。

1.文件的分类
1.真实文件
2.目录文件
3.虚拟文件

2.文件名和文件全名的区别
文件名:名字+扩展名
文件全名:路径+名字+扩展名。

3.相对路径和绝对路径
相对路径:已运行的根目录作为起点,填写的路径。
绝对路径:带上一个盘符的路径。
尽量使用相对路径。

4.不同系统的目录分隔符和路径分隔符是什么?
windows:"/",";"
linux:"\",":"
File类提供了统一的属性用来获取目录分隔符和路径分隔符。

5.使用File类来创建文件或目录,删除文件和获取文件属性。
创建文件对象的方式:
File(File parent, String child)
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
文件操作的方法:
boolean createNewFile()
          当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
boolean delete()
          删除此抽象路径名表示的文件或目录。
void deleteOnExit()
          在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean exists()
          测试此抽象路径名表示的文件或目录是否存在。
    String getName()
          返回由此抽象路径名表示的文件或目录的名称。
boolean isAbsolute()
          测试此抽象路径名是否为绝对路径名。
boolean isDirectory()
          测试此抽象路径名表示的文件是否是一个目录。
boolean isFile()
          测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden()
          测试此抽象路径名指定的文件是否是一个隐藏文件。
    long length()
          返回由此抽象路径名表示的文件的长度。
File[] listFiles()
          返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
static File[] listRoots()
          列出可用的文件系统根。
boolean mkdir()
          创建此抽象路径名指定的目录。
boolean mkdirs()
          创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
   
    实例:创建、删除文件和统计磁盘个数
    TestFile

6.如何查找所有磁盘的文件呢?
    TestFile
   
    要有界面
    1.可以选择查找的目录
    2.可以输入要查找的文件名
    3.显示文件的文件全名

7.什么是异常?
程序在运行过程中,意外终止执行。

8.常见的异常类
Exception类的子类
异常:
1.运行时异常  RuntimeException(隐式异常)

2.强制异常

9.异常的处理
try{}//表示用来捕获{}中的代码是否会发生异常,如果发生异常,则交给catch语句进行处理。
catch(){}//()中表示的异常的类型,{}表示异常的处理。
finally{}//不管是否发生异常,都将执行{}中的代码。
throws//向外抛出异常(强制异常就是用throws引发的)
throw//用来定义新的异常的关键字(1.用try{}catch(){}进行处理;2.用throws往外抛异常)

例:
TestFile.java

package cn.netjava.lesson15_2;

import java.io.File;
import java.io.IOException;

public class TestFile {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
TestFile tf = new TestFile();
tf.newOnDeleteFile("src/cn/netjava/lesson1/测试.txt");
tf.print();
}

File[] list = File.listRoots();

/**
* 获取到系统所有的盘符
*/
public void print(){
//定义一个File数组对象,使用File类的listRoots方法获取所有的磁盘
//= File.listRoots();
int count = 0;
System.out.println("list="+list);
//循环遍历下
for(int i=0;i<list.length;i++){
System.out.println(list[i].getAbsolutePath());
//调用统计的方法
count += searchFile(list[i]);
}
System.out.println("文件总数:"+count);
}

/**
* 查找磁盘中所有文件的总数
*/
public int searchFile(File file){
//定义变量
int count = 0;
//获取File对象下是否还有目录或者文件
File [] list = file.listFiles();
//判断数组是否为null或者长度为0
if(null == list || list.length == 0){
return 0;
}
//循环数组
for(int i=0;i<list.length;i++){
//获取文件对象
File f = list[i];
//判断f是否是目录
if(f.isDirectory()){
//进行递归调用
count += searchFile(f);
}
//判断是否是文件
if(f.isFile()){
count++;
}
}
//返回文件总数
return count;
}

/**
* 定义一个方法,用来创建或者删除文件的
* @throws Exception
*/
public void newOnDeleteFile(String path) throws Exception{
//实例化一个文件对象
File f = new File(path);//只是创建了一个文件对象而已,还未操作这个文件,所以在此时是没有指向文件的。
//开始操作
if(f.exists()){
//表示文件存在,删除他
//f.delete();
System.out.println("你准备删除:"+f.getName()+"文件吗?");
throw new Exception("禁止删除该文件!");
}else{
try {
f.createNewFile();//表示文件不存在,则创建
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("你创建了:"+f.getName()+"文件");
}
}
}
分享到:
评论

相关推荐

    C++ 总结(总结+实例)

    十一.模板 27 1.概念 27 2.声明 27 例子(冒泡排序模板) 28 十二.异常处理 29 例子 29 十三.输入输出 29 1.IO流 29 2.文件流 30 3.串流 30 例子1(类插入和析取器) 31 例子2(文件的读写) 32

    Java 面试宝典

    41、运行时异常与一般异常有何异同? ..................................................................... 28 42、error 和 exception 有什么区别? ...........................................................

    corejava培训文档

    15. 十四 标准I/O流与文件 15.1. 对文件的操作 15.2. 处理跨平台性 15.3. 对象的序列化接口 15.4. I/O流基础 15.5. 流的分类 15.6. I/O输入输出 16. 十五 网络编程 16.1. 网络基础知识 16.2. TCP Socket...

    Windows内部原理(十一):存储和文件系统

    深入研究Windows内部原理系列之十一:存储和文件系统 讲师信息:高宇 2007年02月08日 14:00-15:30 Level: 400 课程将在宏观上简要介绍Windows的存储体系, 观察磁盘上的扇区怎样变成用户眼中的文件. 然后深入观察...

    JNI完全技术手册 带完整书签

    8.异常... 91 9.线程和同步访问... 91 10.时间... 92 Chap12:基本JNI调用技术(c/c++与java互调) 93 Chap13:JNI的c代码中,另外一个线程获取 JNIEnv. 96 chap 14:当JNI遇到多线程--java对象如何被C++中的多...

    java学习笔记 初学者必读

    15. 十四•标准I/O流与文件 15-46 15.1. 对文件的操作 15-46 15.2. 处理跨平台性 15-46 15.3. 对象的序列化接口 15-47 15.4. I/O流基础 15-47 15.5. 流的分类 15-47 15.6. I/O输入输出 15-48 16. 十五•网络编程 16-...

    corejavaNoteBook

    15. 十四•标准I/O流与文件 15-46 15.1. 对文件的操作 15-46 15.2. 处理跨平台性 15-46 15.3. 对象的序列化接口 15-47 15.4. I/O流基础 15-47 15.5. 流的分类 15-47 15.6. I/O输入输出 15-48 16. 十五•网络编程 16-...

    国嵌笔记。全集全集

    十一. Bootloader设计 11 1. 2440板子 11 2. 异常向量表 12 3. 设置svc模式 12 4. 时钟设置 12 5. sdram内存初始化 12 6. Steppingstone 搬移代码到内存: 13 7. C语言环境初始化 13 一、栈: 13 栈作用: 14 二、...

    C-TPAT程序文件.txt

    十、货物过剩和短缺处理程序 十一、监控管理程序 十二、外发厂商安全管理程序 十三、新进/在职人员安全管理程序 十四、离职人员安全管理程序 十五、安全防恐管理程序 十六、电脑操作规定 十七、门锁锁匙控制管理规定...

    Struts2入门教程(全新完整版)

    12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与...

    漫谈兼容内核.7z

    谈兼容内核之一:ReactOS怎样实现系统调用.pdf 漫谈兼容内核之二:关于kernel -win32的对象管理.pdf 漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 漫谈兼容内核之四:Kernel-win32的进程管理.pdf 漫谈兼容内核...

    Recuva 1.37.0.488汉化版

    - 固定的问题与文件列表不显示图标的正确看法。 - 增加了翻译资料,关于屏。 - 增加了格鲁吉亚的翻译。 v1.32.444(09年10月30日) - 改进分析exFAT驱动器。 - 增加了安装的U3便携。 - 非标新闻部(大字体)界面修正...

    Java常见面试题208道.docx

    8.String str="i"与 String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用 final 修饰吗?...

    非常全的oracle文档

    十一、 使用OEM 27 十二、 SQL/PLUS连接数据库 28 12.1. SQL*Plus工具 28 12.2. 连接方式 28 12.3. 连接远程数据库 29 十三、 SQL*PLUS常用命令 30 十四、 表空间 49 14.1. 创建表空间 49 14.2. 表空间状态属性 53 ...

    C#农历处理类 测试正常

    之前曾经上传过一个农历处理类,但遇到润年月会出异常.这个是对网上的改进版,经测试正常,我的项目中都在使用.在这里共享出来..... 文件里有使用说明.使用时调用两个静态函数即可: /// /// 显示: 农历 闰五月十一...

    java实验报告.docx

    实验十一 Java 枚举类型的应用 18 实验十二 Java 集合框架程序设计应用 22 实验十三 Java 反射与注解程序应用 31 实验十四 Java 数据库程序设计应用 36 实验十五 Java Swing 图形用户界面程序设计应用 43 实验十六 ...

    SpringMVC入门教程

    十一、 spring mvc 如何实现全局的异常处理 十二、 spring mvc 如何把全局异常记录到日志中 十三、 如何给spring3 MVC中的Action做JUnit单元测试 十四、 spring mvc 转发与重定向 (带参数重定向) 十五、 spring ...

    漫谈兼容内核

    03.漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 04.漫谈兼容内核之四:Kernel-win32的进程管理.pdf 05.漫谈兼容内核之五:Kernel-win32的系统调用机制.pdf 06.漫谈兼容内核之六:二进制映像的类型识别.pdf...

Global site tag (gtag.js) - Google Analytics