Java 文件操作

一、输入输出流

        输入输出流主要是用来读写文件,要想通过java提供的输入输出流读写文件中的内容就得到了解操作文件。

二、File类对象的创建和常用方法

        File 类的定义 public class File

        File 类的静态成员变量:

                static String pathSeparator  与系统相关的路径分隔符  输出为;

                static char pathSeparatorChar  与系统相关的路径分隔符 输出为;

                static String   separator 与系统相关的默认名称 - 分隔符字符 输出为 \

                static char separatorChar 与系统相关的默认名称  输出为 \

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实例

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类的实例方法

// 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() 得到文件对象代表的文件夹中的所有文件和文件夹的文件对象,返回一个文件对象数组得到指定文件夹中的指定类型的文件,得到所有文件或文件夹的对象,可以调用对象的方法,获取其相应信息

你可能感兴趣的:(java,开发语言)