1 package LS_JJ01;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.text.SimpleDateFormat;
6 import java.util.Date;
7
8 public class TestFile02 {
9 //我封装起来了
10 public static void test01() {
11 //文件路径:相对路径、绝对路径
12 //相对路径:项目底下找
13 //绝对路径:盘符底下找
14 //File.separator():表示单斜杠
15
16 //File file = new File("test01.txt");
17 //直接在所在项目底下创建test01.txt。输出:test01.txt
18 //test01.txt:是因为toString方法被重写
19 //System.out.println(file);
20 //打印出来是什么都没有
21 //System.out.println(file);
22 //获取绝对路径。默认:项目所在位置
23 //System.out.println(file.getAbsolutePath());
24
25
26 //src\test02.txt:这是因为一个斜杠是有特殊意义的
27 File file01 = new File("src\\test02.txt");
28 //输出:src\test02.txt
29 System.out.println(file01);
30 //获取绝对路径
31 System.out.println(file01.getAbsolutePath());
32 //判断文件是否存在
33 //输出:true
34 System.out.println(file01.exists());
35
36 //获取文件名
37 System.out.println(file01.getName());
38 //获取文件
39 System.out.println(file01.length());
40 //判断是否是文件还是文件夹
41 System.out.println(file01.isFile());
42 System.out.println(file01.isDirectory());
43 //判断是否可读还是可写
44 System.out.println(file01.canRead());
45 System.out.println(file01.canWrite());
46 //判断是否隐藏
47 System.out.println(file01.isHidden());
48
49
50 //获取最后修改时间
51 //System.out.println(new Date(file01.lastModified()));
52 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
53 String time = sdf.format(new Date(file01.lastModified()));
54 System.out.println(time);
55 }
56
57
58
59 public static void main(String[] args) {
60 //test01();
61 test02();
62
63 }
64
65 private static void test03(File file) {
66 if(file.isDirectory()){
67 //如果是文件夹,遍历
68 File[] files = file.listFiles();
69 for (File file2:files) {
70 //继续判断文件
71 test03(file2);
72 }
73 //删除空的文件夹
74 file.delete();
75 }else{
76 //只要是文件直接删除
77 file.delete();
78 }
79 }
80
81 // private static void test02() {
82 // //文件不存在
83 // File file = new File("tes03.txt、");
84 // System.out.println(file.exists());
85 //
86 // //如果文件不存在,会创建的代码
87 // if(!file.exists()){
88 //
89 // try {
90 // file.createNewFile();//创建文件
91 // } catch (IOException e) {
92 // e.printStackTrace();
93 // }
94 // }
95
96
97 private static void test02() {
98 File file = new File("A\\B\\C\\D");
99 //创建文件夹
100 if(!file.exists()) {
101 //file.mkdir();//创建单层文件夹
102 file.mkdirs();//创建多层文件夹
103 }
104
105 //删除文件或者是文件夹
106 //删除文件不管有没有内容都会删除,
107 //删除文件夹只能删除空的
108 // file.delete();
109
110 //获取子文件
111 File[] files = file.listFiles();
112 //输出是地址
113 // System.out.println(files);
114 //输出
115 for(File file3 : files){
116 System.out.println(file3);
117 }
118
119 }
120
121
122
123
124 }
File
1 package LS_JJ01;
2
3 import java.io.File;
4 import java.io.FileFilter;
5 import java.io.FilenameFilter;
6
7 public class TestFilter {
8 public static void main(String[] args) {
9 File file = new File("C:\\Users\\LS\\Desktop\\实训\\文档资料\\SE进阶课件");//绝对路径
10 // File[] files = file.listFiles(new FileFilter() {//下面只创建过滤器
11 // @Override
12 // public boolean accept(File file) {
13 //// System.out.println("aaa"+file);
14 // return file.getName().endsWith("zip");//输出我们想要的内容
15 // }
16 // });//列出文件
17
18
19 File[] files = file.listFiles(new FilenameFilter() {//过滤器2
20 @Override
21 public boolean accept(File file, String s) {
22 System.out.println(file);//输出是文件夹名字
23 System.out.println(s);//输出是文件名
24 return s.endsWith("zip");
25 }
26 });
27 for(File file1 : files){
28 System.out.println(file1);//输出所有文件的名
29 }
30
31
32 }
33 }
FileNameFilter/FileFilter
1 package LS_JJ01;
2
3 import java.io.File;
4 import java.io.FileNotFoundException;
5 import java.io.IOException;
6 import java.io.RandomAccessFile;
7
8 public class TestRandomAccessFile04 {
9 public static void main(String[] args) throws FileNotFoundException {
10 RandomAccessFile raf =null;
11 File file01 = null;
12
13 try {
14 file01 = new File("test02.txt");
15 raf = new RandomAccessFile(file01, "rw");
16 //写
17 // raf.write(65);
18 //读(当读到文件末尾返回-1)
19 System.out.println(raf.read());
20
21 //2个字节连续读
22 byte[] bt =new byte[2];
23 System.out.println(raf.read(bt));
24 System.out.println(new String(bt));
25 } catch (Exception e) {
26 e.printStackTrace();
27 }finally {
28 if (raf != null) {
29 try {
30 raf.close();
31 } catch (IOException e) {
32 e.printStackTrace();
33 }
34 }
35
36 }
37 }
38
39 }
RandomAccessFile
1 package LS_JJ01;
2
3 import java.io.*;
4
5 public class TestInAnOut {
6 public static void main(String[] args) {
7 File file = new File("test02.txt");
8 testInputStream(file);
9 testOutputStream(file);
10 }
11
12 private static void testInputStream(File file) {
13 //输入流:从文件读取到内存
14 InputStream in = null;
15 try{
16 in = new FileInputStream(file);
17 // System.out.println(in.read());
18 byte[] bt = new byte[1024];
19 int i = 0;
20 while ((i=in.read(bt))!=-1){
21 System.out.println(new String(bt,0,i));
22 }
23 }catch (Exception e){
24 e.printStackTrace();
25 }
26 }
27
28 private static void testOutputStream(File file) {
29 //输出流:从传统内存写入到文件
30 OutputStream out = null;
31 try{
32 //append:表示追加
33 out = new FileOutputStream(file,true);
34 out.write(65);
35 out.write("你好世界".getBytes());
36 out.write(65);
37 out.write("你好世界".getBytes());
38 System.out.println("写入成功");
39 }catch (Exception e){
40 e.printStackTrace();
41 }
42 }
43 }
InputStream