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 ...
随机推荐
- C#委托的简单剖析
为什么在Button1的Click事件发生之后,button1_Click方法就会被调用呢? 实际上,在我们双击Button1的时候,IDE自动的添加了一段代码,该段代码位于“Form1.Design ...
- Filemanager 的使用
filemanager的使用包括: 1.创建文件夹 2.删除文件夹 3.写入文件 4.复制文件 5.移动文件 6.删除文件 一.创建文件夹 首先宏的定义一个字符串作为地址的来获取当前的docum ...
- 如何为你的美术妹子做Unity的小工具(三)
绘制脚本组件监视面板的内容 我们写了一个脚本Test using UnityEngine; using System.Collections; using System.Collections.Gen ...
- WinSock网络编程基础(3)server
上一篇讲的是简单的发送数据的客户端的实现.接下来讲的是如何实现收发数据服务器.这里说的服务器其实就是一个进程,它需要等待任意数量的客户端与之建立起连接,以便响应它们的请求. 服务器必须在已知的名称上监 ...
- win7 ie10输入网址显示无法显示此页问题的解决
忽然又一天,非常奇怪,所有的浏览器都无法访问网页,直接输入IP也是不行. 本人试过各种方法,包括用360进行修复:清除%temp%下文件:看是否设错了dns, 升级和修复IE,重新注册ie相关的dll ...
- css2实现尖角箭头式导航
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- codeforces 603C. Lieges of Legendre sg函数
题目链接 n堆石子, 可以拿走一堆中的一颗, 或者将一堆数量为2*x的石子分为k堆x个的石子.k由题目给出. k分奇偶讨论. k为偶数时,k堆x个的石子异或结果为0: k为奇数时, k堆x个石子异或结 ...
- 认识和理解css布局中的BFC
认识和理解css布局中的BFC BFC的定义 是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用. Block Formatting Con ...
- 所有的GUI Toolkit,类型之多真开眼界
The GUI Toolkit, Framework Page User interfaces occupy an important part of software development. Th ...
- 基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置
经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - ...