java之IO流-File v_1.0.0
来源:互联网 发布:淘宝店卖食品需要什么 编辑:程序博客网 时间:2024/05/22 07:47
一、java IO流之File
说明:本文章只是一些基础练习,供入门者参考。
1.创建一个文件(或目录),判断它是否已存在,若不存在则创建,判断它是一个文件还是一个目录,删除它,判断它是否还存在。
1.1文件
@Test public void testFile() { File file = new File("D:","hello.txt"); //判断文件是否已存在,不存在就创建 if(file.exists()) { System.out.println("hello.txt已存在!"); } else { try { boolean isCreate = file.createNewFile(); if(isCreate) { System.out.println("hello.txt创建成功"); } else { System.out.println("创建文件失败!!"); } } catch (IOException e) { System.out.println("创建文件发生异常!"); } } //判断它是一个文件还是一个目录 if (file.isDirectory()) { System.out.println("这是一个目录"); } if (file.isFile()) { System.out.println("这是一个文件"); } //删除它 boolean isDel = file.delete(); if(isDel) { System.out.println("文件删除成功"); } else { System.out.println("文件删除失败"); } //判断文件是否还存在 if (file.exists()) { System.out.println("文件还在"); } else { System.out.println("文件不在了!"); } } //运行结果: /*hello.txt创建成功 这是一个文件 文件删除成功 文件不在了!*/
1.2目录
@Test public void testDir() { //File.separator会根据平台自动处理文件分隔符. File file = new File("D:"+File.separator + "aa" + File.separator + "bb","temp"); //判断file对象是否已存在,若不存在则创建 if (file.exists()) { System.out.println("temp已存在"); } else { //创建 //如果其父目录不存在,则用file.mkdirs(),该方法会创建父级目录 boolean isCreate = file.mkdirs(); //如果父目录已存在,则可用file.mkdir(),只会创建当前这一个目录 //boolean isCreate = file.mkdir(); if (isCreate) { System.out.println("temp创建成功"); } else { System.out.println("temp创建失败"); } } //判断它是一个文件还是一个目录 if (file.isDirectory()) { System.out.println("这是一个目录"); } else { System.out.println("这是一个文件"); } //删除它,此时前面为其创建的父目录不会被删除. boolean isDel = file.delete(); if (isDel) { System.out.println("删除成功"); } else { System.out.println("删除失败"); } //判断它是否还在 if (file.exists()) { System.out.println("这个东东还在"); } else { System.out.println("这个东东不在了"); } } //运行结果: /*temp创建成功 这是一个目录 删除成功 这个东东不在了*/
2.移动文件或目录
创建一个目录 D:\aa,创建一个文件 F:\hello.txt,将hello.txt移动到目录aa下。
@Test public void testMoveFile() throws IOException { File file1 = new File("F:","hello.txt"); File file2 = new File("D:","aa"); //创建文件 if(!file1.exists()) { System.out.println(file1.createNewFile() ? "文件创建成功": "文件创建失败"); } //创建目录 if (!file2.exists()) { System.out.println(file2.mkdirs() ? "目录创建成功" : "目录创建失败"); } //移动后的文件对象,如果该对象已存在就会移动失败,若要实现覆盖效果,则先将其删除,再移动。 File file3 = new File(file2.getPath() + File.separator + file1.getName()); if(file3.exists()) { file3.delete(); } //移动文件,就是将现有的文件路径进行一个重命名,有点像linux系统中的用mv命令给文件重命名。 System.out.println(file1.renameTo(file3) ? "文件移动成功" : "文件移动失败"); }
3.获取文件或目录的名称,路径。
@Test public void testGetFilVar() { File file = new File("C:" + File.separator + "Users" + File.separator + "xzz" + File.separator + "Desktop" + File.separator + "11.txt"); // 获取文件名 String fileName = file.getName(); System.out.println("file名= " + fileName); //文件名=11.txt // 获取字符串形式的 父路径名称, // 如果没有指定父路径,则返回null,如定义File file = new File("xzz");此时返回null. String parent = file.getParent(); System.out.println("parent= " + parent); //parent= C:\Users\xzz\Desktop // 获取File对象形式的父路径名称,如果没有指定父路径,则返回null File parentFile = file.getParentFile(); System.out.println("parentFile= " + parentFile); //parentFile= C:\Users\xzz\Desktop // 获取字符串形式的路径 String path = file.getPath(); System.out.println("path= " + path); //path= C:\Users\xzz\Desktop\11.txt }
4.获取目录中的文件和目录
@Test public void testGetFiles() { File file = new File("C:" + File.separator + "Users" + File.separator + "xzz" + File.separator + "Desktop"); if (file.exists()) { //list()返回目录中的文件或目录名 String[] filesStr = file.list(); System.out.println(Arrays.toString(filesStr)); //[11.txt, demo] //listFiles()返回目录中的文件或目录的file对象 File[] fileArr = file.listFiles(); System.out.println(Arrays.toString(fileArr)); //[C:\Users\xzz\Desktop\11.txt, C:\Users\xzz\Desktop\demo] //获取当前系统可用的根目录 File[] files = File.listRoots(); System.out.println(Arrays.toString(files)); //[C:\, D:\, E:\, F:\, G:\] } }
注:还有以下几个方法,后续再跟进:
String[ ] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FileFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
说明:*FilenameFilter 和 FileFilter是接口,它们都有一个accept方法,用于过滤。
5.获取文件或目录属性
@Test public void testFileAttribute() { //File file = new File("D:" + File.separator + "11.docx"); File file = new File("D:" + File.separator + "业务分析"); if(file.exists() ) { //返回一个文件的大小,单位为字节。如果是一个目录,则返回的大小不确定。文件不存在,则返回0L. long length = file.length(); System.out.println(length); //测试该文件是否是一个隐藏的文件,根据底层平台约定是隐藏文件时,返回 true System.out.println(file.isHidden()); //文件是最后修改时间 long modifyTime = file.lastModified(); System.out.println(modifyTime); } else { System.out.println("文件不存在"); } }
阅读全文
1 0
- java之IO流-File v_1.0.0
- java IO流之字符流 v_1.0.0
- java数组之排序 v_1.0.0
- java之String v_1.0.1
- Java io流之File
- java-IO流之File
- java io 之 File
- Java IO之File
- Java IO之File
- Java IO之File
- java基础--IO流之File类
- Java基础--IO流之File类
- Java基础:IO流之File类
- java之 IO之File
- java IO流:File
- java io 之File类
- Java IO之File类
- java之Io-File类
- UVa10881 Piotr's Ants
- 【Luogu3398】仓鼠找sugar(树链剖分)
- Git
- C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展
- 中国大学 MOOC 课程 《Python 语言程序设计》 课后练习(第 2 周)
- java之IO流-File v_1.0.0
- 用 Vue 做一个酷炫的 menu:15篇前端热文回看
- 开发更好用的 JavaScript 模块
- SECRET_KEY的重要性
- 面向对象:找一个人,希望你懂我眼泪,我知你疲惫
- 唯快不破:linux网络编程--shut_down和close()函数的区别
- 3-3 构造函数的调用(高级)
- Retrofit网络请求+Recyclerview展示数据+Fresco显示图片
- JAVA字符串使用