Java(IO之File类)

IO之File类

I/O相关	输入/输出	   流(数据流动)
数据流动的方向   读数据(输入Input)   写数据(输出output)
文件流  字符流  对象流  网络流....

1.什么叫文件
一种电脑的存储形式
文件有不同的格式 .txt .doc .ppt .mp4 .jpg .rar …
文件夹?(不算文件)----目录路径(是为了找到不同文件的一个路径)
File----->与电脑上的文件或文件夹产生一一对应的映射关系
File是一个类
1.java.io包中
2.文件或目录路径名的抽象表示形式
3.File与真实硬盘中的文件或文件夹 不是一个东西
File是在内存中的一个对象<—映射—>硬盘上的文件或文件夹

4.File类中的常用的方法
canExecute() 判断是否可以执行此抽象路径名表示的文件。
canRead() 测试应用程序是否可以读取由此抽象路径名表示的文件。
canWrite() 测试应用程序是否可以修改由此抽象路径名表示的文件。
isHidden() 测试此抽象路径名命名的文件是否为隐藏文件。
isFile() 指的是判断当前的File文件是否为一个文件。
isDirectory() 指的是判断当前的FIle文件是否为一个目录。

package testfile;
import java.io.File;

public class TestFile {
	public static void main(String[] args) {
		//file对象不是真正的文件
		//file对象是堆内存中创建出来的一个对象空间
		//路径是看创建的对象,是否能与硬盘中 的一个真实文件产生对应映射关系
		
		//通过文件流去读取文件的内容时会出现问题
		
		//系统内硬盘上的文件名字是不区分大小写的,内存中FIle对象的名字是区分大小写的
		File file = new File("D://test//Test.txt");
		//文件本身的一些属性
		System.out.println(file.canExecute());
		System.out.println(file.canRead());
		System.out.println(file.canWrite());
		System.out.println(file.isHidden());
	}
}

length()获取文件中字节的个数
lastModified()获取文件最后的修改时间—>毫秒值

package testfile;
import java.io.File;

public class TestFile {
	public static void main(String[] args) {
        File file = new File("D://test//Test.txt");
		long l = file.length();
        System.out.println(l);
        long time = file.lastModified();//获取文件最后修改时间
        Date date = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");
        System.out.println(sdf.format(date));
	}
}

String path = getAbsolutePath() 获取文件的绝对路径 D://test//Test.txt
String name = getName() 获取文件的名字 Test.txt

绝对路径和相对路径的区别:

绝对路径 相对路径
绝对路径可以通过完整的字符串 相对路径没有盘符的写法
定位盘符 文件夹 文件 例如:test//Test.txt 当前工程(项目)所在的位置找寻C:\Users\Administrator\IdeaProjects\TestFile
File file = new File("D://test//Test.txt");
		
		String name = file.getName();//文件的名字  Test.txt
		String path = file.getAbsolutePath();//文件的绝对路径 D://test//Test.txt
		System.out.println(name);
		System.out.println(path);
	   *boolean = createNewFile()      创建新的文件
       *boolean = mkdir	               创建新的文件夹  外层没有 不能创建
	   *boolean = mkdirs               创建新的文件夹  外层没有 可以自动创建
public static void main(String[] args){
    //创建一个file对象
    File file = new file("D://test//abc.txt");
    //通过这个对象,然后在硬盘上创建文件
    try{
        boolean value = file.creatNewFile();//编译时异常
        System.out.println(value);
    }catch(IOException e){
        e.printStackTrace();
    }
}

文件夹在硬盘上其实并不存在,只是在硬盘上划分一个区域而已,硬盘上只有文件所以文件夹
没有大小,也没有创建与否,因此文件夹的创建不会产生异常。

public static void main(String[] args){
    //创建一个新的file对象
    File file = new File("D:test//aaa");
    //在硬盘上创建一个新的文件夹
    boolean value = file.mkdir();//外层(父元素)真实存在,只能父元素下面的子元素的文件夹。
    /*
    File file = new File("D://test//bbb/inner");
    boolean value = file.mkdirs();当外层文件夹(父元素)不存在时,先创建父元素再创建子元素文件夹。
    */
    System.out.println(value);
}

String pname = getParent() 获取当前file的父亲file名字
File file = getParentFile() 获取当前file的父亲file对象

public static void main(String[] args){
    File file = new File("D://test//Test.txt")
    String pname = file.getParent();//获取file的父元素的名字-->test
    File path = file.getParentFile();//当前file的父元素的对象  file--> D://test
	System.out.println(name);
	System.out.println(path);
}

String[] names = list() 获取当前file的所有儿子名字
File[] files = listFiles() 获取当前file的所有儿子对象
boolean = delete() 删除文件或空的文件夹 不能删除带元素的文件夹

public static void main(String[] args){
		File file = new File("D://test//Test.txt");
		File[] files = file.listFiles();
		System.out.println(files);
		//数组对象为空,证明当前的file是一个文件
		//数组对象不为空,证明当前的file是一个文件夹
		//数组的长度不为0,证明当前的file是一个空的文件夹,文件夹内有元素
		File file0 = new File("D://test/aaa");
		boolean value = file.delete();
		Sytem.out.pritln(value); 
		//当删除的文件夹有内容就不会删除。
}
null
true
2.什么叫文件流   做什么
	读取文件中的内容		向文件中写内容
	文件输入流		文件输出流
	字节型文件输入流		字节型文件输出流
	字符型文件输入流		字符型文件输出流
发布了54 篇原创文章 · 获赞 17 · 访问量 2435

猜你喜欢

转载自blog.csdn.net/qq_44096670/article/details/104334921