简介
👨💻个人主页:@云边牧风
👨🎓小编介绍:欢迎来到云边牧风破烂的小星球🌝
📋专栏:Java基础知识
🔑本章内容:输入输出流
记得 评论📝 +点赞👍 +收藏😽 +关注💞哦~
这一节的主要内容有:
File类
读写文本文件
读写二进制文件
随机存取文件读写
一、File类
1.1概念
①是什么?👇
以抽象的方式代表文件名和目录路径名的一种文件处理方法类
②有什么用?👇
该类主要用于文件和目录的创建、文件的查找和文件的删除等。
表示磁盘文件信息
File类的对象可以作为文件流的参数(而且是可传递的)
1.2常见的方法有:
File(String name) | name表示文件/目录的名称; 可以包含路径信息 |
File(String pathToName , String name) | pathToName表示路径; name表示文件名称 |
File(File directory, String name) | File对象directory表示目录; name表示文件名称 |
File(URI uri) | 使用统一资源定位符定位文件 |
canRead()/canWrite():是否可读/写
exists():是否存在
isFile():是否是文件
isDirectory():是否是目录
delete():删除文件或目录
如果是目录,必须是空目录才能删除成功删除成功返回真,否则返回假
1.3操作文件常见技巧:
• 先使用 exists () 方法判断文件是否存在• createNewFile (); 创建文件• mkdir () 创建文件夹
• 先使用 exists () 方法判断文件是否存在• 再使用 canRead ()/ canWrite () 方法判断文件权限• 写文件时使用 isFile () 方法来确定是否是一个文件
练习:
1.D盘创建文件夹,以学号命名
2.文件夹内创建两个文件a.txt, b.jpg
3.文件夹内创建子文件夹 以名字命名
在执行以下代码前,D盘中并没有“1234567890”的文件夹:
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String optname0 = "D:\\1234567890";//先声明一个路径(绝对路径)
String optname1 = optname0+"\\a.txt";//先声明文件的路径和名称(绝对路径)
String optname2 = optname0+"\\b.jpg";
String optname3 = optname0+"\\文森学长";//先声明子文件夹路径(绝对路径)
File f0 = new File(optname0);//执行new操作(申请空间的同时执行了创建的操作)
File f1 = new File(optname1);
File f2 = new File(optname2);
File f3 = new File(optname3);
if (f0.mkdir()){//如果f0执行的是创建文件夹(前提是该文件夹事先不存在),成功了返回true
System.out.println("目标文件夹已创建");
}
else {//否则就是未创建文件夹,因为f0路径下已经存在了
System.out.println("目标文件夹已存在");
}
if (f1.createNewFile()){//如果f1执行的是创建文件(前提是该文件事先不存在),成功了返回true
System.out.println("目标文件1已创建");
}
else {//否则就是未创建文件,因为f1路径下已经存在了
System.out.println("目标文件1已存在");
}
if (f2.createNewFile()){
System.out.println("目标文件2已创建");
}
else {
System.out.println("目标文件2已存在");
}
if (f3.mkdir()){
System.out.println("目标子文件夹已创建");
}
else {
System.out.println("目标子文件夹已存在");
}
}
}
运行结果:
目标文件夹已创建
目标文件1已创建
目标文件2已创建
目标子文件夹已创建
打开文件管理可以看到刚刚运行的结果:
注意:保持原代码不变,再次运行的结果为:
目标文件夹已存在
目标文件1已存在
目标文件2已存在
目标子文件夹已存在
接着我们可以执行以下代码:
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String dirname = "D:\\1234567890";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println("Directory of " + dirname);
String s[] = f1.list();
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + " is a directory");
} else {
System.out.println(s[i] + " is a file");
}
}
} else {
System.out.println(dirname + " is not a directory");
}
}
}
得到运行结果:
Directory of D:\1234567890
a.txt is a file
b.jpg is a file
文森学长 is a directory
• 先使用 exists () 方法判断文件是否存在• 再使用 isDirectory () 方法来确定是文件还是目录• 如果是目录,使用 list () 方法来判断目录是否为空
String[ ] strArr = aFile. list ();
// strArr .length == 0 表示没有文件 。• delete 方法
接着上一个实验:
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
String optname0 = "D:\\1234567890";//先声明一个路径(绝对路径)
String optname1 = optname0+"\\a.txt";//先声明文件的路径和名称(绝对路径)
File f0 = new File(optname0);//执行new操作(申请空间的同时执行了创建的操作)
File f1 = new File(optname1);
boolean deleted = f1.delete();
if(deleted){
System.out.println("文件已被删除!");
}
else {
System.out.println("文件删除失败!");
}
}
}
结果为:文件已被删除!
注意处理IO异常:
执行文件操作时,一般使用 try来进行,如果不使用try的话(跟小编前面的实验一样),就需要在main后面接上throws IOException,并且头文件需要import java.io.IOException;
结束语:
以上是Jav第六章第2节的全部内容 希望大家喜欢
下一节讲第六章第3节:文件读写—— 读写文本文件
喜欢的可以点赞+关注哈 ❤