Java输入输出流(NIO)-----文件类File详解
Posted fengfuwanliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java输入输出流(NIO)-----文件类File详解相关的知识,希望对你有一定的参考价值。
1.java.io.File类简介
- 凡是与输入、输出相关的类、接口等都定义在java.io包下
- File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录
- File类对象是与平台无关的
- File中的方法,仅涉及到如何创建、删除、重命名等等。只要涉及文件内容的,File是无能为力的,必须由io流来完成
- File类的对象常作为io流的具体类的构造器的形参
2.createNewFile() delete() lastModified() exists()
package com.nio.File; import java.io.File; import java.io.IOException; import java.util.Date; /** * 文件操作 * @author yyx * 2019年1月15日 */ public class FileOperateFirst { public static void main(String[] args) { String filePath = "D:" + File.separator + "testfile.txt"; System.out.println(filePath); File file = new File(filePath); // 判断文件是否存在且是不是文件 if (file.isFile() && file.exists()) { // 删除文件 file.delete(); } else { try { // 创建文件 file.createNewFile(); // 打印文件最后编辑时间 System.out.println(new Date(file.lastModified())); } catch (IOException e) { e.printStackTrace(); } } } }
3.mkDir() mkDirs() list() listFiles()
package com.nio.File; import java.io.File; import java.io.IOException; /** * 文件操作 * * @author yyx 2019年1月15日 */ public class FileOperateSecond { public static void main(String[] args) { String mkdirPath = "D:" + File.separator + "testfile"; File mkdirFile = new File(mkdirPath); // isDirectory() 测试此抽象路径名表示的文件是否为目录 if (!mkdirFile.exists() && !mkdirFile.isDirectory()) { // mkDir():创建一个文件目录。只有在上层文件目录存在的情况下,才能返回true System.out.println(mkdirFile.mkdir()); } String mkdirsPath1 = "D:" + File.separator + "testfile1" + File.separator + "file1"; File mkdirsFile1 = new File(mkdirsPath1); if (!mkdirsFile1.exists() && !mkdirsFile1.isDirectory()) { // 此处因testfile1目录不存在,故报错 // System.out.println(mkdirsFile1.mkdir()); } String mkdirsPath2 = "D:" + File.separator + "testfile" + File.separator + "file2" + File.separator + "file3"; File mkdirsFile2 = new File(mkdirsPath2); if (!mkdirsFile2.exists() && !mkdirsFile2.isDirectory()) { // mkDirs():创建一个文件目录。若上层文件目录不存在,一并创建 System.out.println(mkdirsFile2.mkdirs()); } /* * 只有上级目录存在,才能在该目录下创建文件 */ String filePath1 = "D:" + File.separator + "testfile1" + File.separator + "filepath.txt"; File file1 = new File(filePath1); if (!file1.exists()) { try { // 报错 系统找不到指定的路径 // file1.createNewFile(); } catch (Exception e) { e.printStackTrace(); } } String filePath2 = "D:" + File.separator + "testfile" + File.separator + "file2" + File.separator + "filepath1.txt"; File file2 = new File(filePath2); if (!file2.exists()) { try { System.out.println(file2.createNewFile()); } catch (IOException e) { e.printStackTrace(); } } /* * list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录 * listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 可以使用递归循环取出目录下的文件和目录 */ File file3 = new File(mkdirPath); String[] strs = file3.list(); for (int i = 0; i < strs.length; i++) { System.out.println(strs[i]); } System.out.println("*******************"); File[] files = file3.listFiles(); for (int i = 0; i < files.length; i++) { System.out.println(files[i].getName()); } } }
以上是关于Java输入输出流(NIO)-----文件类File详解的主要内容,如果未能解决你的问题,请参考以下文章