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\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 }
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 }
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 }
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 }
会当凌绝顶,一览众山小