zoukankan      html  css  js  c++  java
  • JavaSE基础之 IO流

    知识点
    I --  Input
    O --  Output
             * InputStream 输入流
             * OutputStream 输出流
             *
             * 以 流(作为载体) 的方式处理 数据
             *
             * 字节码  主要应用于媒体文件处理 图片 语音 视频...  也可以处理文字 但效率没有字符码效率高
             * 字符码  主要应用于文字的处理
             *
             * File类
             *     创建文件
     * File类
             *   查看API
             *   文件和目录路径名的抽象表示形式。
             *
             * boolean    createNewFile()
             *           当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
             *
             * boolean    delete()
             *           删除此抽象路径名表示的文件或目录。
             *
             * boolean    exists()
             *           测试此抽象路径名表示的文件或目录是否存在。
             *
             * String    getAbsolutePath()
             *           返回此抽象路径名的绝对路径名字符串。 绝对路径
             *
             * String    getName()
             *           返回由此抽象路径名表示的文件或目录的名称。
             *
             * String    getParent()
             *           返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
             *
             * File    getParentFile()
             *           返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
             *
             * String    getPath()
             *           将此抽象路径名转换为一个路径名字符串。相对路径
             *
             * boolean    isAbsolute()
             *           测试此抽象路径名是否为绝对路径名。
             * boolean    isDirectory()
             *           测试此抽象路径名表示的文件是否是一个目录。
             * boolean    isFile()
             *           测试此抽象路径名表示的文件是否是一个标准文件。
             * boolean    isHidden()
             *           测试此抽象路径名指定的文件是否是一个隐藏文件。
             *
             * String[] list()
             *           返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
             *
             * boolean    mkdir()
             *           创建此抽象路径名指定的目录。
             * boolean    mkdirs()
             *           创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
             *
             */

    public class FileTest {
        public static void main(String[] args) {
                    createFile();
            //deleteFile("/Users/dllo/Desktop/homeWork");
        }
    
        private static void createFile() {
    
            //在桌面上创建一个文件夹
            //创建文件夹 参数是路径
            File file1 = new File("/Users/dllo/Desktop/luke_file");
    
            //判断文件或文件夹是否存在 若不存在 返回false   !false --->true
            if (!file1.exists()) {
                file1.mkdir();
            }
    
            //创建多个文件夹 嵌套关系
            File file2 = new File("/Users/dllo/Desktop/luke_file2/ada/asd/dd");
            if (!file2.exists()) {
                file2.mkdirs();
            }
    
    
            //创建文件
            File file3 = new File("/Users/dllo/Desktop/luke_file/ppp.png");
            if (!file3.exists()) {
                try {
                    file3.createNewFile(); //文件生成 createNewFile()
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            //快速创建
            //若想用这种方式创建文件 那么必须保证路径的正确(必须有该文件夹)
            //java 推荐使用
            File file4 = new File("/Users/dllo/Desktop/luke_file/", "aaa.txt");
            try {
                file4.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            /**
             * 打印各个文件的相对路径和绝对路径
             *
             *  删除文件
             */
    
            /**
             * 绝对路径 是最具体的路径
             * 相对路径 是相对工程而言的
             */
    
            System.out.println(file1.getAbsolutePath());
            System.out.println(file1.getPath());
    //        System.out.println(file2.getAbsolutePath());
    //        System.out.println(file2.getPath());
    //        System.out.println(file3.getAbsolutePath());
    //        System.out.println(file3.getPath());
    
            File file5 = new File("luke/小说.txt"); // 工程下创建文件  相对路径
            System.out.println(file5.getPath());  //相对路径
            System.out.println(file5.getAbsolutePath());
        }
    
        private static void deleteFile(String path) {
    
            /**
             * 根据路径删除文件,文件夹
             */
            File file = new File(path);
            if (!file.exists()){
                System.out.println("该文件不存在");
    
                //直接结束此方法
                return;
            }
            //判断要删除的东西是否为文件 若是 则直接删除
            if (file.isFile()){
            file.delete();
            }
    
            //判断要删的东西是否为文件夹
            if (file.isDirectory()){
    
                //获取文件夹里的所有内容 注意是File[] 集合
                File[] files = file.listFiles();
    
                for (File file1 : files) {
                    //递归删除
                    deleteFile(file1.getAbsolutePath());
                }
                file.delete();
            }
        }
    }

    *工程下创建文件


    *读写  IO
    * 按类型分
             *    字节流 字符流
             *
             * 按方向分
             *    输入流 输出流

    public class Main {
        public static void main(String[] args) {
            /**
             * 需求:
             *    1.读取某一文件里的内容
             *    2.将某一字符串写成一个文件
             *    3.读取一个文件里面的内容并且复制到另一个文件中
             *
             */
            read("/Users/dllo/Desktop/地址");
            write("luke/aaa");
        }
    
        private static void write(String outPath) {
            File file = new File(outPath);
            try {
                //创建输出流
                FileOutputStream fos = new FileOutputStream(file);
    
                System.out.println("请输入要输出的内容");
                //创建一个字符串
                String str = new Scanner(System.in).next();
    
                //将字符串转化成字节数组 再进行写操作
                fos.write(str.getBytes());
    
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
        private static void read(String path) {
    
            //获取要读的文件
            File file =new File(path);
    
            //创建输入流
            try {
                FileInputStream fis = new FileInputStream(file);
                byte[] bytes = new byte[1024];
    
                //记录每次读取数据的长度,(位置)
                int length = 0 ;
                String result = "";
                while ((length = fis.read(bytes))!= -1){
    
                    //参数1 要拼接的数组   参数2 起始位置  参数3 结束位置
                    String str = new String(bytes,0,length);
                    result += str;
                    System.out.println(result);
                }
                //最后一定要!!!! 关流
                // 先入后出  先创建的后关 后创建的先关
                fis.close();
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


           

  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/luke-liuqi/p/9338800.html
Copyright © 2011-2022 走看看