绝对路径和相对路径:
绝对路径:
绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。(注意:文件路径不能出现中文字符,否则可能会报错)
相对路径:
在IDEA环境中写的是一个相对路径,绝对位置是工程目录。相对路径名必须使用取自其他路径名的信息进行解释。如果使用单元测试方法,相对路径就是基于当前的Module;如果是mian() 方法测试,相对路径就是基于当前的Project
在Eclipse当中无论是单元测试还是main() ,相对路径都是基于当前project的
下面测试是基于IDEA的,通过绝对路径打开一个文件夹,直接输入文件夹的根目录比如:
public abstract class RedPacketFrame extends JFrame {
private static final long serialVersionUID = 1L;
private static final String DIR = "C:\\Users\\lu\\Desktop\\RedPacket\\test\\demo\\pic";
private ArrayList<Integer> moneyList = null;
如果是main()测试,通过相对路径打开一个文件,首先这个文件得在运行所属的project的目录里,如图所示:
public abstract class RedPacketFrame extends JFrame {
private static final long serialVersionUID = 1L;
private static final String DIR = "demo\\pic";
private ArrayList<Integer> moneyList = null;
private static int initMoney = 0;
private static int totalMoney = 0; // 单位为“分”
private static int count = 0;
或者当根目录是demo时,通过相对路径打开文件如图所示:
public abstract class RedPacketFrame extends JFrame {
private static final long serialVersionUID = 1L;
private static final String DIR = "pic";
private ArrayList<Integer> moneyList = null;
文件的构造方法:
public static void fun(){
// File(String pathname)
// pathname:
// 1)可以是文件夹 eg:c:\\123
// 2)也可以是文件 eg:c:\\123\\123.txt
// 将路径封装成File类型的对象
//不对路径是否存在进行判断
File file = new File("写路径名");
}
public static void fun1(){
// File(String parent,String child)
// 需要传递路径的父路径(上一层),和子路径(下一层)
File file = new File("d","****");
}
public static void fun2(){
// File(File parent,String child)
// 需要传递路径的父路径(上一层),和子路径(下一层)
File file = new File("d:");
File file1 = new File(file,"sss");
}
文件的增删操作
//创建一个文件
public static void fun() throws IOException {
File file = new File("d:\\a.txt");
//如果文件已经存在 便不在创建,只能创建文件不能创建文件夹
boolean createNewFile = file.createNewFile();
System.out.println(createNewFile);
}
//创建一个文件夹
public static void fun1() throws IOException {
File file = new File("d:\\aaa");
//如果文件已经夹存在 便不在创建,不能用来创建文件
boolean b = file.mkdir();
//创建多级文件夹
File file1 = new File("d:\\aa\\bb\\cc");
boolean b1 = file1.mkdirs();
//推荐使用mkdirs 可以创建一级或多级文件夹
}
//删除文件或者文件夹
public static void fun2(){
File file = new File("d://aaa");
//可以删除文件夹 也可以删文件夹
//直接删除,不去回收站
boolean delete = file.delete();
}
//获取文件或者文件夹的名称
public static void fun3(){
//获取文件最深路径的名字
//不判断文件是否存在,文件路径错误也会返回
//相当于直接切割file里面的路径名
//此方法意义不大
File file = new File("d:\\aaa");
String name = file.getName();
//和toString 返回结果一样
file.getPath();
}
对文件内容进行操作``
//获取文件夹中所有文件和文件夹名称(所以的,包括隐藏的)
public static void fun(){
File file = new File("D:\\aaa");
String[] list = file.list();
}
//获取文件夹中所有文件和文件夹名称(返回值是File对象)
//返回了的目录或者文件全名
public static void fun1(){
File file = new File("D:\\aaa");
File[] listFiles = file.listFiles();
}
//获取系统中的所有根目录
public static void fun2(){
File[] listRoots = File.listRoots();
}