guyanqing 1 gadu atpakaļ
vecāks
revīzija
a7cc237060

+ 13 - 0
src/main/java/com/sf/day15/Test.java

@@ -0,0 +1,13 @@
+package com.sf.day15;
+
+public class Test {
+    public static final String MESSAGE = "taobao";
+    @org.junit.Test
+    public void t(){
+        String a = "tao"+"bao";
+        String b = "tao";
+        String c = "bao";
+        System.out.println(a == MESSAGE);  //true   因为
+        System.out.println((b+c) == MESSAGE);  // false
+    }
+}

+ 72 - 0
src/main/java/com/sf/day15/Test01.java

@@ -0,0 +1,72 @@
+package com.sf.day15;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * collection 的子接口List
+ */
+public class Test01 {
+    @Test
+    public void t1(){
+        List<String> list  = new ArrayList<>();
+        list.add("张三");
+        list.add("李四");
+        list.add("王五");
+        list.add("赵三");
+        list.add("李三");
+        String s = list.get(2);
+//        System.out.println(s);
+//        for (String s1 : list) {
+//            if(s1.contains("三")){
+//                System.out.println(s1);
+//            }
+//        }
+        //在index  位置插入  ele元素
+        list.add(2,"liss");
+        List<String> list1  =  new ArrayList<>();
+        list.add("ikun");
+        List<Integer> list2  =  new ArrayList<>();
+        list2.add(1);
+        //向list集合中的指定位置插入list1集合中的元素
+        list.addAll(list1);
+        System.out.println(list);
+//        list.addAll();
+
+    }
+
+    @Test
+    public void t2(){
+        List<Integer> list = new ArrayList<>();
+        for(int i = 1;i<=20;i++){
+            list.add(i);
+        }
+        System.out.println("source   "+list);
+        //List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
+        // 是左闭右开的
+        List<Integer> integerList = list.subList(3, 10);
+        System.out.println(integerList);
+        int i = list.indexOf(10);
+        System.out.println(i);
+        int i1 = list.indexOf(100);
+        System.out.println(i1);
+        list.add(9,10);
+        list.add(9,10);
+        System.out.println(list);
+
+        int i2 = list.indexOf(10);  //首次在这个集合中出现这个(10)元素的下标
+        System.out.println(i2);
+
+        int i3 = list.lastIndexOf(10);   //在当前集合中查找这个元素最后一次出现的下标
+        System.out.println(i3);
+
+        Integer remove = list.remove(9);  //在这个集合中删除指定下标的元素  并且返回该元素
+        System.out.println(remove);
+
+        Integer set = list.set(0, 99);  //在这个集合中,用element替换index位置上的元素,并且返回值是原来index位置上的元素
+        System.out.println(set);
+        System.out.println(list);
+    }
+}

+ 66 - 0
src/main/java/com/sf/ioioioioi/ListFilesTest.java

@@ -0,0 +1,66 @@
+package com.sf.ioioioioi;
+
+import org.junit.Test;
+
+import java.io.File;
+
+public class ListFilesTest {
+
+    public static void printSubFile(File dir){
+        //打印目录的子文件
+        File[] subfiles = dir.listFiles();
+        for (File f : subfiles) {
+        if(f.isDirectory()){//文件目录
+            printSubFile(f);
+        }else {//文件
+            System.out.println(f.getAbsolutePath());
+        }
+        }
+    }
+
+    @Test
+    public void testListAllFiles(){
+        // 1.创建目录对象
+        File dir = new File("D:\\demo");
+        // 2.打印目录的子文件
+        printSubFile(dir);
+    }
+
+
+    /**
+     * 拓展1   求指定目录所在的空间大小
+     */
+    public long getDirectorySize(File file){
+        // file是文件,那么直接返回file.length()
+        // file是目录,把它的下一级的所有file大小加起来就是它的总大小
+        long size = 0;
+        if(file.isFile()){
+            size = file.length();
+        }else {
+            File[] files = file.listFiles();//获取file的下一级
+            for (File file1 : files) {
+                size += getDirectorySize(file);//f的大小
+            }
+        }
+        return size;
+    }
+
+
+    /**
+     * 拓展2   删除指定目录
+     * @param file
+     */
+    public void deleteDirectory(File file){
+        // 如果file是文件,直接delete
+        // 如果file是目录,先把它的下一级干掉,然后删除自己
+        if(file.isDirectory()){
+            File[] files = file.listFiles();
+            //循环删除的是file的下一级
+            for (File f : files) { //f代表file的每一个下级
+                deleteDirectory(f);
+            }
+        }
+        file.delete();
+    }
+
+}

+ 217 - 3
src/main/java/com/sf/ioioioioi/test01.java

@@ -2,8 +2,7 @@ package com.sf.ioioioioi;
 
 import org.junit.Test;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 import java.util.Arrays;
 import java.util.Date;
 
@@ -124,9 +123,224 @@ public class test01 {
     }
 
     @Test
-    public void t9(){
+    public void t9() throws IOException {
+        //利用File构造器,new一个文件目录file
+        // 在其中创建 当前日期目录 之后创建helloworld.java文件
+        //编写方法,实现删除file中指定文件的操作
+        File file = new File("D:\\file");
+        boolean mkdirs = file.mkdirs();
+        if (mkdirs) {
+            File file1 = new File("D:\\file\\a.java");
+            file1.createNewFile();
+        }
+    }
+
+    /**
+     * 判断指定目录下是否有后缀名为.jpg的文件。如果有,就输出该文件名称
+     */
+    @Test
+    public void t10(){
+        File srcFile = new File("d:\\demo");
+        String[] fileNames = srcFile.list();
+        for(String fileName : fileNames){
+            if(fileName.endsWith(".jpg")){
+                System.out.println(fileName);
+            }
+        }
+    }
+
+    /**
+     * 方法二
+     * 判断指定目录下是否有后缀名为.jpg的文件。如果有,就输出该文件名称
+     */
+    @Test
+    public void t11(){
+        File srcFile = new File("d:\\demo");
+        File[] listFiles = srcFile.listFiles();
+        for(File file : listFiles){
+            if(file.getName().endsWith(".jpg")){
+                System.out.println(file.getAbsolutePath());
+            }
+        }
+    }
+
+    /**
+     *判断指定目录下是否有后缀名为.jpg的文件。如果有,就输出该文件名称
+     * * File类提供了两个文件过滤器方法
+     * 	 * public String[] list(FilenameFilter filter)
+     * 	 * public File[] listFiles(FileFilter filter)
+     */
+    @Test
+    public void t12(){
+        File file = new File("d:\\demo");
+        File[] files = file.listFiles(new FilenameFilter() {
+            @Override
+            public boolean accept(File dir, String name) {
+                return name.endsWith(".jsp");
+            }
+        });
+        for (File file1 : files) {
+            System.out.println(file1.getAbsolutePath());
+        }
+    }
+
+    /**
+     * 练习3:遍历指定目录所有文件名称,包括子文件目录中的文件。
+     *  拓展1:并计算指定目录占用空间的大小
+     *  拓展2:删除指定文件目录及其下的所有文件
+     */
+    @Test
+    public void t13(){
+        /**
+         * 代码在另外一个类(ListFilesTest)中的主函数中
+         */
+    }
+
+    /**
+     * 读取hello.txt文件中的字符数据,并显示在控制台上
+     */
+    @Test
+    public void t14() throws IOException {
+        // 1、创建file类的对象  对应着物理磁盘上的某个文件
+        File file = new File("d:\\a.txt");
+        //2 、创建fileReader对象  将file类的对象作为参数传递到fileRead的构造器中
+        FileReader fr = new FileReader(file);
+        //3、通过相关流的方法  读取文件中的数据
+        int data;
+        while ((data = fr.read()) !=-1){
+            System.out.println((char) data);
+        }
+        //4、关闭相关的流资源  避免出现内存泄露
+        fr.close();
+    }
+
+
+    /**
+     * 实现方法3  调用read(char[] cbuf),每次从文件中读取多个字符     FileReader --read()
+     * @throws IOException
+     */
+    @Test
+    public void t15() throws IOException {
+        FileReader fr = null;
+        try {
+            //1. 创建File类的对象,对应着物理磁盘上的某个文件
+            File file = new File("d:\\a.txt");
+            //2. 创建FileReader流对象,将File类的对象作为参数传递到FileReader的构造器中
+            fr = new FileReader(file);
+            //3. 通过相关流的方法,读取文件中的数据
+            char[] cbuf = new char[5];
+            /*
+             * read(char[] cbuf) : 每次将文件中的数据读入到cbuf数组中,并返回读入到数组中的
+             * 字符的个数。
+             * */
+            int len; //记录每次读入的字符的个数
+            while ((len = fr.read(cbuf)) != -1) {
+                //处理char[]数组即可
+                //正确:
+                String str = new String(cbuf, 0, len);
+                System.out.print(str);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            //4. 关闭相关的流资源,避免出现内存泄漏
+            if (fr != null)
+                fr.close();
+        }
+    }
+
+    @Test
+    public void t16() throws IOException {
+        // 使用文件名称创建流对象
+        FileWriter fw = new FileWriter(new File("d:\\fw.txt"));
+        // 写出数据
+        fw.write(97); // 写出第1个字符
+        fw.write('b'); // 写出第2个字符
+        fw.write('C'); // 写出第3个字符
+        fw.write(30000); // 写出第4个字符,中文编码表中30000对应一个汉字。
+        //关闭资源
+        fw.close();
+    }
 
+    @Test
+    public void t17() throws IOException {
+        // 使用文件名称创建流对象
+        FileWriter fw = new FileWriter(new File("fw.txt"));
+        // 字符串转换为字节数组
+        char[] chars = "爱扣钉".toCharArray();
+        // 写出字符数组
+        fw.write(chars); // 爱扣钉
+        // 写出从索引1开始,2个字符。
+        fw.write(chars,1,2); // 钉钉
+        // 关闭资源
+        fw.close();
+    }
+
+    @Test
+    public void t18() throws IOException {
+        FileWriter fw = null;
+        try {
+            //1. 创建File的对象
+            File file = new File("personinfo.txt");
+            //2. 创建FileWriter的对象,将File对象作为参数传递到FileWriter的构造器中
+            //如果输出的文件已存在,则会对现有的文件进行覆盖
+            fw = new FileWriter(file);
+//            fw = new FileWriter(file,false);
+            //如果输出的文件已存在,则会在现有的文件末尾写入数据
+//            fw = new FileWriter(file,true);
+
+            //3. 调用相关的方法,实现数据的写出操作
+            //write(String str) / write(char[] cbuf)
+            fw.write("hello world");
+            fw.write("world".toCharArray());
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            //4. 关闭资源,避免内存泄漏
+            try {
+                if (fw != null)
+                    fw.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
     }
 
+    @Test
+    public void t19() throws IOException {
+//复制文件  b.txt  到 upload下
+        FileReader fr = new FileReader("d:\\a.txt");
+        FileWriter fw = new FileWriter("d:\\b.txt",true);
+        //数组
+        char[] chars = new char[1024*8];
+
+        int len;
+        while (  (len=fr.read(chars)) != -1 ){
+            fw.write(chars,0,len);
+        }
+
+        //关闭
+        fw.close();
+        fr.close();
+    }
+
+    @Test
+    public void t20() throws IOException {
+        // 使用文件名称创建流对象
+        FileWriter fw = new FileWriter("fw.txt");
+        // 写出数据,通过flush
+        fw.write('刷'); // 写出第1个字符
+        fw.flush();
+        fw.write('新'); // 继续写出第2个字符,写出成功
+        fw.flush();
+
+        // 写出数据,通过close
+        fw.write('关'); // 写出第1个字符
+        fw.close();
+        fw.write('闭'); // 继续写出第2个字符,【报错】java.io.IOException: Stream closed
+        fw.close();
+    }
 }
 
+
+

BIN
target/classes/com/sf/day14/exercisequestions/Test01$1.class


BIN
target/classes/com/sf/day14/exercisequestions/Test01.class


BIN
target/classes/com/sf/day14/exercisequestions/model/Employee.class


BIN
target/classes/com/sf/day14/exercisequestions/model/Produtor.class


BIN
target/classes/com/sf/day14/exercisequestions/model/Student.class


BIN
target/classes/com/sf/day14/exercisequestions/model/User.class


BIN
target/classes/com/sf/day14/exercisequestions/Worker.class → target/classes/com/sf/day14/exercisequestions/model/Worker.class


BIN
target/classes/com/sf/day14/exercisequestions/Worker1.class → target/classes/com/sf/day14/exercisequestions/model/Worker1.class


BIN
target/classes/com/sf/day15/Test.class


BIN
target/classes/com/sf/day15/Test01.class


BIN
target/classes/com/sf/ioioioioi/ListFilesTest.class


BIN
target/classes/com/sf/ioioioioi/test01$1.class


BIN
target/classes/com/sf/ioioioioi/test01.class