package com.io;
import java.io.File;
import org.junit.Test;
/*
IO流,也叫输入输出流(input、 output);
IO技术主要的作用使解决设备与设备之间的数据传输问题;比如:硬盘-->内存; 内存-->硬盘;
IO技术的应用场景:导出报表、上传、下载、解析xml文件...
数据一般是以文件的形式保存到硬盘上的;于是sun公司就使用了一个 File 类来描述文件或者文件夹;
*/
public class Demo1 {
/*
File类的构造方法:
File(String pathname):根据指定路径的文件或者文件夹创建一个File类对象;
File(File parent, String child):根据parent路径名对应的File对象和child路径名创建一个File对象;
File(String parent, String child):根据parent路径名和child路径名创建一个File对象;
*/
@Test
public void test1(){
// 根据指定路径的文件或者文件夹创建一个File类对象;
File file1 = new File("D:\\a.text");
System.out.println("文件存在吗?" + file1.exists()); // exist():判断文件是否存在;
File file2 = new File("D:\\");
System.out.println("文件夹存在吗?" + file2.exists());
File file3 = new File("D:\\test");
System.out.println("文件夹存在吗?" + file3.exists());
}
@Test
public void test2(){
File parentFile = new File("D:\\");
File file = new File(parentFile, "a.txt");
System.out.println("文件是否存在:" + file.exists());
File file2 = new File("D:\\", "a.txt");
System.out.println("文件是否存在:" + file2.exists());
}
/*
目录分隔符:在Windows系统上的目录分隔符是\,该符号不能单独使用,需要转义(\);在linux系统上的目录分隔符是/;
但是,windows系统可以使用两种目录分隔符,写成/也可以,而且只需要写一个/就行;
其他操作系统都是只认一种目录分隔符;
*/
@Test
public void test3(){
// File.separator:获取当前系统所使用的目录分隔符;Java会自动匹配当前系统,获取对应的目录分隔符;
System.out.println(File.separator);
String filepath = "D:" + File.separator + "a.txt";
System.out.println("文件路径:" + filepath); // 文件路径:D:\a.txt
}
/*
路径问题:
绝对路径:该文件在硬盘上的完整路径;一般都是以盘符开头的;
相对路径:资源文件相对于当前程序所在的路径;
. 代表当前路径;
.. 代表上一级路径;
注意:如果资源文件与当前程序不在同一个盘符下面,是无法写出相对路径的;
*/
@Test
public void test4(){
File file = new File(".");
System.out.println("获取当前程序的绝对路径:" + file.getAbsolutePath());
File file2 = new File("..\\..\\..\\a.txt");
System.out.println("文件是否存在:" + file2.exists());
// 如果在src目录下创建一个新的文件b.txt,那么相对路径可以直接写成下面的样式;
File file3 = new File("src\\b.txt");
System.out.println("文件是否存在:" + file3.exists());
}
}