文件基础操作

 

        File f = new File("F:/2021/img/cat.jpg");

        // 列出所有的盘符c: d: e: 等等
        File[] rootsFile = File.listRoots();
        System.out.println(Arrays.toString(rootsFile));

        // 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
        String[] list = f.list();
        System.out.println(Arrays.toString(list));
        // 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
        File[] fs = f.listFiles();
        System.out.println(Arrays.toString(fs));

        // 以字符串形式返回获取所在文件夹
        String parent = f.getParent();
        System.out.println(parent);
        // 以文件形式返回获取所在文件夹
        File parentFile = f.getParentFile();
        System.out.println(parentFile.getName());

        // 创建文件夹,如果父文件夹F:/2021/img/不存在,创建就无效
        boolean mkdir = f.mkdir();
        System.out.println(mkdir);
        // 创建文件夹,如果父文件夹F:/2021/ha不存在,就会创建父文件夹
        boolean mkdirs = f.mkdirs();
        System.out.println(mkdirs);

        // 创建一个空文件,如果父文件夹skin不存在,就会抛出异常
        // 所以创建一个空文件之前,通常都会创建父目录
        f.getParentFile().mkdirs();
        try {
            boolean newFile = f.createNewFile();
            System.out.println(newFile);
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 刪除文件
        boolean delete = f.delete();
        System.out.println(delete);
        // JVM结束的时候,刪除文件,常用于临时文件的删除
        f.deleteOnExit();

 

字节流操作 FileInputStream 、FileOutputStream

        File f = new File("F:/2021/doc/test.txt");

        //文件-输入流-内存  读取
        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream(f);
            byte[] bytes = new byte[(int) f.length()];
            inputStream.read(bytes);
            for (byte b : bytes) {
                System.out.print((char) b);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        //try(自动会在finally关闭流)
        //内存-输出流-文件 写入
        try (FileOutputStream outputStream = new FileOutputStream(f);) {
            byte[] data = {21, 22, 29, 127, -128, -100, 0};
            outputStream.write(data);
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

 

字符流操作 FileWriter、FileReader

        File f = new File("F:/2021/doc/test.txt");
        try (FileWriter writer = new FileWriter(f)) {
            char[] writeData = {'锅', '的', '中', 'A', '-', ')', '\"'};
            writer.write(writeData);
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (FileReader reader = new FileReader(f)) {
            char[] data = new char[(int) f.length()];
            reader.read(data);
            for (char c : data) {
                System.out.print(c);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

 

缓存流操作BufferedReader、PrintWriter

        File f = new File("F:/2021/doc/test.txt");
        try (FileWriter writer = new FileWriter(f);
             PrintWriter printWriter = new PrintWriter(writer);
        ) {
            printWriter.println("dsadsadsada");
            printWriter.println("\tdsadsadsada");
            printWriter.println("中文字符");
            printWriter.println("dsa特殊字符\\s \"a\"d\'a");
            printWriter.println("dsa\ndsadsada");
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (FileReader reader = new FileReader(f);
             BufferedReader bufferedReader = new BufferedReader(reader);
        ) {
            while (true) {
                String linData = bufferedReader.readLine();
                if (linData == null) {
                    break;
                }
                System.out.println(linData);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

 

数据流DataInputStream、DataOutputStream

        File f = new File("F:/2021/doc/test.txt");
        try (FileOutputStream outputStream = new FileOutputStream(f);
             DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
        ) {
            dataOutputStream.writeBoolean(false);
            dataOutputStream.writeChar('中');
            dataOutputStream.writeDouble(0.1241504);
            dataOutputStream.writeInt(200);
            dataOutputStream.writeUTF("yich一串");
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (FileInputStream inputStream = new FileInputStream(f);
             DataInputStream dataInputStream = new DataInputStream(inputStream);
        ) {
            boolean b = dataInputStream.readBoolean();
            System.out.println(b);
            char c = dataInputStream.readChar();
            System.out.println(c);
            double d = dataInputStream.readDouble();
            System.out.println(d);
            System.out.println(dataInputStream.readInt());
            System.out.println(dataInputStream.readUTF());
        } catch (IOException e) {
            e.printStackTrace();
        }

 

对象流 ObjectOutputStream、ObjectInputStream

        File f = new File("F:/2021/doc/test.txt");

        User user = new User();
        user.setId(1001);
        user.setName("测试");
        user.setAge(20);
        try (
                FileOutputStream outputStream = new FileOutputStream(f);
                ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
                FileInputStream inputStream = new FileInputStream(f);
                ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);

        ) {
            objectOutputStream.writeObject(user);
            User user1 = (User) objectInputStream.readObject();
            System.out.println(user1.getId());
            System.out.println(user1.getName());
            System.out.println(user1.getAge());

        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

 

posted on 2021-03-29 14:33  情_结  阅读(64)  评论(0)    收藏  举报