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()+"文件");
}
}
}
分享到:
相关推荐
根据给定的文件信息,我们可以将重点放在两个主要的知识点上:首先是设计并实现一个用于检测数值范围的异常类 `RangeError`;其次是定义一个自定义异常类 `CException` 并通过函数调用来演示异常的抛出与捕获过程。 ...
本资源“精通struts基于MVC的java web设计与开发(代码全十一).rar”包含了11个部分的完整代码示例,旨在帮助开发者深入理解Struts框架的使用和实现。 1. **MVC模式详解**:MVC模式是一种将业务逻辑、数据和用户...
实验十一主要探讨的是Oracle数据库的备份与恢复策略,这对于数据库管理至关重要,因为它涉及到数据的安全性和完整性。Oracle数据库提供了多种备份方式,包括物理备份和逻辑备份。在这个实验中,主要涉及的是物理备份...
描述部分与标题相同,再次强调了文件的内容是关于阿里巴巴双十一期间的电商收入数据。这些数据对于分析阿里巴巴的业务表现、双十一活动的影响力以及中国乃至全球电子商务市场的趋势都非常有价值。 标签为“数据”,...
在本案例中,我们聚焦于"winmm.dll"这个文件,它是一个动态链接库(Dynamic Link Library)文件,主要与Windows操作系统相关。 "winmm.dll"是Windows多媒体库的一部分,提供了对系统多媒体功能的支持。这个文件的...
工作计划可能包括与物流公司的协调、配送时间的估算和异常情况的处理预案。 9. **风险管理和应急计划**:任何大型活动都可能存在风险,如系统故障、供应链中断等,因此必须提前制定应急计划,以降低潜在损失。 10....
3. **印章的异常处理与停用**: - 若印章保管出现异常或遗失,应立即报告并配合调查。 - 停用印章的情况包括公司名称变更、印章损坏、遗失或被盗,停用需经总经理批准,并进行封存或销毁,记录存档。 4. **印章...
在Spring MVC框架中,异常处理和注解配置是两个关键的方面,它们极大地增强了应用程序的稳定性和可维护性。在本教程中,我们将深入探讨这两个主题,并了解如何在实际项目中应用它们。 首先,让我们来看一下Spring ...
Spring框架十一种常见异常的解决方法汇总 在 Spring 框架中,经常会遇到一些常见的异常,这些异常可能会导致程序崩溃或无法正常运行。因此,了解这些异常的解决方法非常重要。在本文中,我们将总结十一种常见的 ...
十一、数据分析与机器学习 18. 数据分析:使用Pandas、NumPy和SciPy进行数据清洗、预处理和分析。 19. 机器学习:通过scikit-learn库学习分类、回归、聚类等机器学习算法。 通过深入学习以上知识点,并结合实际...
在本压缩包“【数据分析】问卷调研-双十一购买物品数据.rar”中,主要包含了一份名为“双十一剁手数据.csv”的文件。这份数据集是针对双十一购物狂欢节期间消费者购买行为的一项问卷调研结果,旨在深入理解消费者的...
本文为 Python三级考试真题的知识点总结,涵盖了 Python 编程语言的多个方面,包括列表、文件操作、异常处理、进制转换、字符串操作等。 一、列表操作 1. 列表索引访问:c = [['赵大',21,'男','北京'],['钱二',20,...
深入研究Windows内部原理系列之十一:存储和文件系统 讲师信息:高宇 2007年02月08日 14:00-15:30 Level: 400 课程将在宏观上简要介绍Windows的存储体系, 观察磁盘上的扇区怎样变成用户眼中的文件. 然后深入观察...
### C# 文件与文件夹操作详解 在C#中,对文件和文件夹的操作是非常常见的需求之一,尤其是在开发需要处理大量文件的应用程序时。本文将详细介绍如何使用C#进行文件和文件夹的基本操作,包括创建、删除、读取、写入...
头文件与多文件结构** - 头文件包含函数原型和类声明等。 - 多文件结构用于组织大型项目,每个文件负责一部分功能。 **11. 编译预处理** - 宏定义:`#define PI 3.14` - 文件包含:`#include "header.h"` #### 四...
8.异常... 91 9.线程和同步访问... 91 10.时间... 92 Chap12:基本JNI调用技术(c/c++与java互调) 93 Chap13:JNI的c代码中,另外一个线程获取 JNIEnv. 96 chap 14:当JNI遇到多线程--java对象如何被C++中的多...