JAVA FILE or I/O学习 - File学习
public class FileKnow
{
public static void main(String[] args)
{
//构建file对象 ,参数表示文件所在的路径
File file = new File("d:\\niit.log"); //判断文件是否存在
System.out.println(file.exists());
//判断文件是否是单个的文件
System.out.println(file.isFile());
//判断文件是否是文件夹
System.out.println(file.isDirectory());
//获取文件的绝对路径
System.out.println(file.getAbsolutePath());
//获取文件名
System.out.println(file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf("\\")+1,file.getAbsolutePath().lastIndexOf(".")));
//获取文件完整的名称包括后缀名
System.out.println(file.getName());
//获取文件所在的相对路径
System.out.println(file.getParent());
//获取文件所在盘符的大小空间
System.out.println(file.getTotalSpace());
//获取文件所在盘符的可用空间
System.out.println(file.getFreeSpace());
System.out.println(file.getUsableSpace());
//获取文件自身的字节数
System.out.println(file.length());
//是否隐藏文件
System.out.println(file.isHidden());
//是否可读
System.out.println(file.canRead());
//设置文件是否可写(只读性的设置)
file.setWritable(false);
//获取文件最后次修改的时间
System.out.println(file.lastModified());
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date(file.lastModified())));
// FileKnow fileKnow = new FileKnow();
// fileKnow.createFile("E:/【 图 片 】", "weifei.jpg");
}
/*******************************************文件基本操作**********************************************/
/**
* 根据指定路径搜索显示所有的文件信息
* @param path
*/
public void showFiles(String path)
{
//通过路径构建文件
File file = new File(path);
//判断文件是否存在
if(file.exists())
{
//打印输出当前文件的路径
System.out.println(file.getAbsolutePath());
//判断是否是文件夹
if(file.isDirectory())
{
//判断文件夹中是否有文件
File[] files = file.listFiles();
if(files != null)
{
//遍历子文件
for(File childFile : files)
{
showFiles(childFile.getAbsolutePath());
}
}
}
}
else
{
System.out.println("文件不存在!");
}
}
/**
* @param args
*/
/**
* 创建文件
*/
public void createFile(String path,String fileName)
{
//创建文件对象
File file = new File(path, fileName);
//判断文件是否存在
if(file.exists())
{
System.out.println("文件已经存在");
}
else
{
//创建文件
try
{
if (file.createNewFile())
{
System.out.println("文件创建成功");
}
else {
System.out.println("文件创建失败");
}
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 创建文件夹
* @param path
*/
public void createDirectroy(String path, String diretroyName)
{
File file = new File(path, diretroyName);
//判断是否存在
if(!file.exists())
{
//创建文件夹
file.mkdir();
}
else
{
System.out.println("文件夹已经存在");
}
}
/**
* 拷贝文件
* @param sourcePath 复制文件的路径 如:D:/
* @param fileName 文件名 如:back.jpg
* @param newPath 复制到的位置 如:E:/
*/
public void copyFile(String sourcePath, String fileName, String newPath)
{
//创建复制的文件
File sourceFile = new File(sourcePath,fileName);
//判断文件是否存在
if(sourceFile.exists())
{
File newFile = new File(newPath,fileName);
//如果文件存在,判断文件的类型
if(sourceFile.isFile())
{
//如果是单个的文件,使用流读写文件
try
{
//构建输入流读取复制的文件
BufferedInputStream input = new BufferedInputStream(new FileInputStream(sourceFile),1024*1024*10);
//构建输出流写出文件
BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(newFile),1024*1024*10);
int data;
while((data = input.read()) != -1)
{
output.write(data);
}
//关闭流
output.flush();
output.close();
input.close(); } catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
//如果是文件夹,新建文件夹
newFile.mkdir();
//判断文件夹中是否还有子文件
File[] files = sourceFile.listFiles();
//遍历子文件
for(File childFile : files)
{
//递归复制子文件
copyFile(childFile.getParent(), childFile.getName(), newFile.getAbsolutePath());
}
}
}
}
/**
* 剪切文件
* @param sourcePath
* @param fileName
* @param newPath
*/
public void cutFile(String sourcePath, String fileName, String newPath)
{
//
}
/**
* 重命名
* @param path
* @param fileName
* @param newName
*/
public void renameFile(String path, String fileName, String newName)
{
//创建源文件
File oldFile = new File(path, fileName);
//判断源文件是否存在
if(oldFile.exists())
{
//创建新文件
File newFile = new File(path, newName);
//判断新文件是否存在
if(!newFile.exists())
{
//重命名
oldFile.renameTo(newFile);
}
else
{
System.out.println("文件名已存在");
} }
else
{
System.out.println("文件不存在");
} }
/**
* 删除文件
* @param path
* @param fileName
*/
public void deleteFile(String path, String fileName)
{
//获取要删除的文件对象
File file = new File(path,fileName);
//判断文件是否存在
if(file.exists())
{
//如果存在,判断该文件是文件还是文件夹
if(file.isDirectory())
{
//如果是文件夹,获取该文件夹的子文件
File[] files = file.listFiles();
//递归删除子文件
for(File childFile : files)
{
deleteFile(childFile.getParent(), childFile.getName());
}
}
//删除整个文件
file.delete();
}
}
}
JAVA FILE or I/O学习 - File学习的更多相关文章
- Java IO学习--File类
一.File类 File类具备一定的误导性,可能容易认为它指代的是文件,实际并非如此,它既能代表一个特定文件的名称,又能表示一个目录下一组文件的名称.简而言之,File类是文件或者目录路径名的抽象表示 ...
- linux命令学习——file
1.简介 file命令是用来检测并显示文件类型(determine file type).通过file指令,我们得以辨识该文件的类型,例如可以知道动态连接库是32位还是64位. 2.命令格式 file ...
- 《JAVA程序设计》_第六周学习总结
一.本周学习内容 1.内部类--7.1知识 在一个类的内部定义的类成为内部类,包含内部类的类叫做外嵌类 内部类和外嵌类的关系 外嵌类的成员变量在内部类中仍然有效,内部类也可调用外嵌类中的方法 内部类的 ...
- 201771010126 王燕《面向对象程序设计(java)》第十八周学习总结
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- 201771010126 王燕《面向对象程序设计(Java)》第十六周学习总结
实验十六 线程技术 实验时间 2017-12-8 1.实验目的与要求 (1) 掌握线程概念: ‐多线程 是进程执行过中产生的多条线索. 是进程执行过中产生的多条线索. 是进程执行过中产生的多条线索. ...
- 马昕璐 201771010118《面向对象程序设计(java)》第十五周学习总结
第一部分:理论知识学习部分 JAR文件:将.class文件压缩打包为.jar文件后,使用ZIP压缩格式,GUI界面程序就可以直接双击图标运行. 既可以包含类文件,也可以包含诸如图像和声音这些其它类型的 ...
- 20172319 《Java程序设计教程》 第9周学习总结
20172319 2018.05.06-05.14 <Java程序设计教程>第9周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考 ...
- JAVA基础--JAVA 集合框架(泛型、file类)16
一.集合总结 集合:Collection体系.Map体系. Collection体系:单列集合的共性操作规则. List:列表,可以重复,有下标,拥有特有的迭代器ListIterator. Array ...
- 201871010119-帖佼佼《面向对象程序设计(java)》第十五周学习总结
博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...
随机推荐
- 重启sql server服务两种方式
1.第一种重启SQl server的方法 点击左侧的数据库重启 如图 右击有个重启操作 2.第二个重启sql server方法
- NSURLConnect 的简单实用(iOS8淘汰)
Demo_1 NSRULConnection NSRULConnection 苹果公司在ios8已经抛弃了,但是我还是要讲一下,因为这和后面的NSSession有着密切的联系 下面开始使用步骤: 1. ...
- SQL中存储过程和自定义函数的区别(转载)
存储过程: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...
- apache+mysql+php环境的手动搭建
一.搭建Apache Http Server 官方下载地址:http://www.apachehaus.com/cgi-bin/download.plx 搭建环境:win10 64位 WIN10 64 ...
- 《Effective C++》Item2:尽量以const,enum,inline替换#define
1. 宏定义 #define ASPECT_RATIO 1.653 该宏定义ASPECT_RATIO也许从来没有被编译器看到,也许在编译器开始处理源码之前就已经被预处理器替换了.所以记号名称ASPEC ...
- Spark源码学习1
转自:http://www.cnblogs.com/hseagle/p/3664933.html 一.基本概念(Basic Concepts) RDD - resillient distributed ...
- Java学习之基本数据类型
基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型.它们是我们编程中使用最频繁的类型.java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. 1. Java ...
- VirtualBox扩展磁盘空间
进入VB的安装目录, 输入命令 VBoxManage list hdds获得当前所有虚拟机的uuid 选择需要扩展的磁盘, 输入 VBoxManage modifyhd uuid –resize 81 ...
- .net mvc笔记3_Understanding Razor Syntax
Understanding Razor Syntax MVC3新视图引擎的名字叫做Razor.ASP.NET视图引擎处理web页面,寻找包含在服务器端指令的特殊元素.正如我们前面已经提到的,标准的AS ...
- 转:一个strcpy的问题(很容易做错)
下面的执行结果是什么? #include<stdio.h> #include<string.h> void main() { "; "; strcpy(d, ...