javaSE 15 IO

  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<test02> {
  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	est02.txt:这是因为一个斜杠是有特殊意义的
 27         File file01 = new File("src\test02.txt");
 28         //输出:src	est02.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
会当凌绝顶,一览众山小
原文地址:https://www.cnblogs.com/quenvpengyou/p/14346953.html