1. I/O流
概念:
- 大多数的应用程序(项目)都需要与外部设备进行数据交换,最常见的外部设备有磁盘、硬盘和网络。
- I/O(Input/Output)就是指应用程序(项目)和这些设备之间的数据交换。
- java中有很多负责I/O数据交换的类,都在
java.io包中。 java.io.File类是I/O包中唯一代表硬盘文件本身的类,通过它可以对文件进行创建,删除,重命名,设置读写权限等操作。- 构造器:
new File(String filename),java支持UNIX和WINDOWS/DOS约定的路径分隔符/和\\ boolean exists():判断文件/目录是否存在。boolean mkdir():创建单层目录。boolean mkdirs():创建多层目录。void delete():删除文件/目录,彻底删除,不进回收站,删除文件夹的前提是,文件夹是空文件夹。void deleteOnExit():在JVM终止时删除文件,只有在JVM正常终止时,才会尝试执行删除操作。boolean createNewFile():创建一个文件。String getName():得到文件/目录的名称。String getPath():得到文件/目录的路径。long length():得到文件字节数。boolean canRead():判断文件是否可读(能查看但是不能操作和存储)。boolean canWrite():判断文件是否可写(能写入但是看不见)。boolean isFile():判断文件是否是文件。boolean isDirectory():判断文件是否是目录。boolean renameTo(File file):重命名为新的file实例的名字注意参数中的file实例不要创建出来。boolean equals(File file):判断文件/目录是否是同一个。String getParent():返回父目录的路径名,如果此路径名没有指定父文件夹,则返回null。boolean isHidden():返回文件是否是一个隐藏文件。long lastModified():返回文件最后一次被修改的时间戳,如果该文件不存在,或者发生I/O错误,则返回0L。boolean isAbsolute:返回文件是否是绝对路径(从盘符出发就是绝对路径)。String getAbsolutePath():返回文件的绝对路径。
- 构造器:
测试: FileTest.java
public class FileTest {
private File file;
@Before
public void before() throws IOException {
String pathDirs = "D:\\java\\io";
File dirs = new File(pathDirs);
if (!dirs.exists()) {
System.out.println(dirs.mkdirs() ? "目录创建成功" : "目录创建失败");
}
String pathname = pathDirs + "\\build.txt";
this.file = new File(pathname);
if (this.file.exists()) {
System.out.println(this.file.delete() ? "删除成功" : "删除失败");
}
System.out.println(this.file.createNewFile() ? "文件创建成功" : "文件创建失败");
}
@Test
public void fileApi() {
System.out.println("文件名:" + file.getName());
System.out.println("文件路径:" + file.getPath());
System.out.println("文件大小:" + file.length());
System.out.println(file.canRead() ? "可读" : "不可读");
System.out.println(file.canWrite() ? "可写" : "不可写");
System.out.println(file.isFile() ? "是文件" : "不是文件");
System.out.println(file.isDirectory() ? "是目录" : "不是目录");
File newFile = new File("D:\\java\\io\\build-1.txt");
System.out.println(file.renameTo(newFile) ? "修改成功" : "修改失败");
System.out.println(file.equals(newFile) ? "是同一个" : "非同一个");
System.out.println("父目录:" + file.getParent());
System.out.println(file.isHidden() ? "隐藏文件" : "非隐藏文件");
System.out.println("最后修改日期:" + new Date(file.lastModified()));
System.out.println(file.isAbsolute() ? "是绝对路径" : "不是绝对路径");
System.out.println("文件绝对路径:" + file.getAbsolutePath());
}
}