Java_IO流——File类(1)


File类

1.概述
我们想要实现IO操作,就必须知道硬盘上文件的表现形式。而Java就给我们提供了一个类File类供我们使用。
File类表示的是文件和目录(文件夹)路径名的抽象表现形式。

2.构造方法
File(String pathname):根据路径得到一个file对象。
File(String parent,String child):根据一个目录和一个文件(或目录)得到一个File对象。
File(File parent,String child):根据一个父File对象和一个子文件/目录得到file对象。

3.代码实现:
public static void main(String[] args) {
//File构造:E:\\demo\\a.txt封装成为一个File对象,仅仅标识的是指向这样的一个对象,不一定要真实存在
File file=new File("E:\\demo\\a.txt");
File file1=new File("E:\\demo","a.txt");
File file2=new File("E:\\demo");
File file3=new File(file2,"a.txt");
}
//上述是通过File的构造所创建的三个可用对象,并指向同一个文件。


4.File类的创建功能
public boolean createNewFile():创建文件,如果有就不再重复创建
public boolean mkdir():创建文件夹,如果有这样的文件夹,就不再重复创建
public boolean mkdirs():创建文件夹,如果父文件夹不存在,就会帮你创建出来,该方法能够创建多级文件夹。

代码实现:
public static void main(String[] args) {
File file=new File("E:\\demo\\a.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//输出结果:
java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.cn.Test.Test.main(Test.java:10)
这里面需要注意,由于该系统中没有demo这一个文件夹,所以会报错,但是如果有demo文件夹,就不会出错。

public class Test {
public static void main(String[] args) {
try {
createFile("E:\\demo\\test","E:\\demo1","E:\\demo\\b.txt");
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 使用多种方式创建文件和文件夹
* @author Administrator、
* @param String path:文件创建的路劲
* @throws IOException
*
*/
public static void createFile(String path,String path1,String path2) throws IOException{
//方法1:多级创建文件夹
File file=new File(path);
file.mkdirs();
//方法2创建文件夹
File file1 =new File(path1);
file1.mkdir();
//创建文件(创建文件夹的时候上一级文件夹已经存在)
File file2=new File(path2);
file2.createNewFile();
}
}

5.File类的删除功能
public boolean delete();删除指定路径的文件或者是文件夹(路径要绝对路劲)

使用注意事项:
(1).如果你创建的文件或者是文件夹忘记写盘符路劲,那么默认在项目路劲下面
(2).java中的删除不走回收站,也就是说删除了不会在回收站里面
(3).要删除一个文件夹,该文件夹内不能够包含文件或者是文件夹。


代码实现:
public class Test {
public static void main(String[] args) {
try {
delete("E:\\demo\\a.txt");
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 删除指定路径下面的文件或者是文件夹
* @author Administrator、
* @param String path:文件创建的路劲
* @throws IOException
*
*/
public static void delete(String path) throws IOException{
File file =new File(path);
file.delete();
}
}


6.File类的重命名功能
pulic boolean renameTo(File dest):
如果路劲名称相同,那么就是该名称
如果路劲名称不相同,那么就是剪切


代码实现:
public class Test {
public static void main(String[] args) {
//修改名操作(路劲相同,都是在当前的项目路劲下面),前提是b.txt文件要先存在。
File file=new File("b.txt");
//File file1=new File("b.txt");
//System.out.println(file.renameTo(file1));
//剪切并张贴操作
File file2=new File("demo\\at.txt");
System.out.println(file.renameTo(file2));
}
}

7.File类的判断功能
public boolean isDirectory():判断是否是目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读


8.File类的基本获取功能
public String getAbsolutePath():获取绝对路劲
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度。字节数(获取的就是属性中的那个字节数)
public long lastModified():获取最后一次修改的事件值(毫秒值)

代码实现:
public class Test {
public static void main(String[] args) {
File file =new File("E:\\demo\\a.txt");
System.out.println("getAbsolutePath:"+file.getAbsolutePath());
System.out.println("getpath:"+file.getPath());
System.out.println("getName:"+file.getName());
System.out.println("length:"+file.length());
System.out.println("lastModified:"+file.lastModified());
Date dt =new Date(file.lastModified());
SimpleDateFormat df =new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
String time=df.format(dt);
System.out.println("lastModified:"+time);
}
}
//输出结果:
getAbsolutePath:E:\demo\a.txt
getpath:E:\demo\a.txt
getName:a.txt
length:0
lastModified:0
lastModified:1970-00-01 08:00:00

9.File类的高级获取功能
public String[] list():获取指定目录下面的所有文件或者是文件夹的名称数组
public File[] listFiles():获取指定目录下面的所有文件或者是文件夹的file数组,同时也可以获取这一个文件的各个属性

代码实现:
public class Test {
public static void main(String[] args) {
File file =new File("E:\\");
//仅仅就是获取到文件的名字
String[] strArray=file.list();
for(String s:strArray){
System.out.println(s);
}
//获取到的是一个file对象,同时可以获取到更多的相关属性(如名字、路劲、大小等)
File[] fileArray =file.listFiles();
for(File f:fileArray){
System.out.println(f.getName());
}

}
}
//输出结果:该文件夹下面的各个文件的名字

猜你喜欢

转载自www.cnblogs.com/nwxayyf/p/9498862.html