一、输入输出流
输入输出流主要是用来读写文件,要想通过java提供的输入输出流读写文件中的内容就得到了解操作文件。
二、File类对象的创建和常用方法
File 类的定义 public class File
File 类的静态成员变量:
static String pathSeparator 与系统相关的路径分隔符 输出为;
static char pathSeparatorChar 与系统相关的路径分隔符 输出为;
static String separator 与系统相关的默认名称 - 分隔符字符 输出为 \
static char separatorChar 与系统相关的默认名称 输出为 \
java
public class TestFileClass {
public static void main(String args[]){
//File--java类--操作文件的java类
//静态成员变量:
//static String pathSeparator 与系统相关的路径分隔符字符,为方便起见,表示为字符串。
//static char pathSeparatorChar 与系统相关的路径分隔符。
System.out.println("String pathSeparator=="+File.pathSeparator); //String--;
System.out.println("char pathSeparatorChar=="+File.pathSeparatorChar); //char--;
//static String separator 与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。
//static char separatorChar 与系统相关的默认名称分隔符。
System.out.println("String separator=="+File.separator); //String--\
System.out.println("char separatorChar=="+File.separatorChar); //char--\
//"\"在文件路径中出现,它是路径分隔符
//为什么需要使用静态成员变量表示路径分隔符?
//原因是因为不同操作系统的路径分隔符不一样,所以需要使用静态成员变量来统一路径分隔符。
//File.separator静态成员变量表示的路径分隔符会在不同的操作系统中被转换成适合当前操作系统的路径分隔符
//F:\20220607\java基础\20220722Java基础(23)\文件操作.txt
//输出错误
//System.out.println("F:\20220607\java基础\20220722Java基础(23)\文件操作.txt");
//使用强制转义字符来转义
System.out.println("F:\\20220607\\java基础\\20220722Java基础(23)\\文件操作.txt");
//使用File.separator静态成员变量来表示路径分隔符
System.out.println("F:"+File.separator+"20220607"+File.separator+"java基础"+File.separator+"20220722Java基础(23)"+File.separator+"文件操作.txt");
}
}
File类的构造方法:
File(String pathname) 通过给定的文件路径字符串创建新的 File 实例
File(String parent,String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File 实例
File(File parent,String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例
java
public class TestFileClass2 {
public static void main(String args[]){
//Flie类的构造方法
//使用File类的构造方法创建出File类的对象并不会创建出真实的文件
//仅仅只表示当前文件对象
//File(String pathname) 通过给定字符串类型的文件路径创建新的 File实例。
String pathnamestr="F:"+File.separator+"mytest"+File.separator+"test1.txt";
File file1=new File(pathnamestr);
//File(String parent, String child) 通过给定的文件位置字符串和给定的文件名称字符串创建新的 File实例。
String parent="F:"+File.separator+"mytest";
String child="test1.txt";
File file2=new File(parent,child);
//File(File parent, String child) 通过给定的文件位置File对象和给定的文件名称字符串创建新的 File实例。
//File parent--文件对象类型的位置
//String child--String类型的文件名称
String path="F:"+File.separator+"mytest";
File pathFile=new File(path); //文件位置的文件对象
String filename="test1.txt"; //文件名称的字符串
File file3=new File(pathFile,filename);
}
}
File类的实例方法
java
// String [] list 只能得到指定路径下所有文件或文件夹的名称
public class FileTestClass2 {
public static void main(String[] args) throws Exception{
String test_dir_path = test_father_dir_path+File.separator+"demo";
File file = new File(test_father_dir_path);
String name[] = file.list();
for (String filename:name){
System.out.println(filename);
}
}
}
//File[] listFiles() 得到文件对象
public class FileTestClass3 {
public static void main(String[] args) {
//File[] listFiles() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,
// 返回一个文件对象数组得到指定文件夹中的指定类型的文件
String farther_path = "F:"+ File.separator+"wangxinghomework"+File.separator+"20230901";
File file = new File(farther_path);
File filelist[] = file.listFiles();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm");
for (File file_list:filelist){
//获得文件名称
String filename=file_list.getName();
//获得文件修改时间
String filetime = simpleDateFormat.format(new Date(file_list.lastModified()));
String filedaxiao = "";
String filetype = "";
if (file_list.isFile()){
if (file_list.length()<1024){
filedaxiao = 1+" KB";
}
if (filedaxiao.length() == 0){
filedaxiao = 0+" KB";
}
if (filedaxiao.length()>=1024){
long daxiao = filedaxiao.length()/1024;
filedaxiao = daxiao+" KB";
}
String houzhui = filename.substring(filename.lastIndexOf("."));
if (houzhui.equals(".txt")){
filetype = "文本文档";
}
if (houzhui.equals(".doc")){
filetype = "word文档";
}
}else {
filetype = "文件夹";
}
System.out.println("文件名称:"+filename+"\t文件修改时间:"+filetime+"\t文件类型:"+filetype
+"\t文件大小:"+filedaxiao);
}
}
}
|-------------------------|----------------------------------------------------------------------------------------|
| boolean exists() | 判断路径名表示的文件或目录是否存在 |
| boolean createNewFile() | 创建新文件 |
| boolean mkdirs() | 创建新的文件夹 |
| boolean delete() | 删除文件/文件夹 删除文件夹的时候要将该文件夹下的文件和子文件夹全部删除 |
| boolean canRead() | 判断文件是否可读 |
| boolean canWrite() | 判断文件是否可写 |
| boolean isHidden() | 判断文件是否为隐藏文件 |
| boolean isFile() | 判断文件对象是否为普通文件 |
| boolean isDirectory() | 判断文件对象是否为目录 |
| String getPath() | 得到文件对象的路径名字符串 |
| String getName() | 得到文件对象所表示的文件或目录的名称 |
| String getParent() | 得到文件对象所表示的路径的父目录路径 |
| long length() | 得到文件对象所表示的文件的长度 |
| long lastModified() | 得到文件对象所表示的文件上次修改的时间 |
| String[] list() | 得到文件对象代表的文件夹中的所有文件和文件夹名称返回一个字符串数组 ,只能的到指定路径下所有文件或文件夹的名字 |
| File[] listFiles() | 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组得到指定文件夹中的指定类型的文件,得到所有文件或文件夹的对象,可以调用对象的方法,获取其相应信息 |