博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE基础之 IO流
阅读量:5140 次
发布时间:2019-06-13

本文共 5092 字,大约阅读时间需要 16 分钟。

知识点

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();        }    }}

 

       

转载于:https://www.cnblogs.com/luke-liuqi/p/9338800.html

你可能感兴趣的文章
因Window服务器自动更新并重启导致WebSphere服务停止服务故障一例
查看>>
如何开启safari的调试
查看>>
js深拷贝和浅拷贝
查看>>
node.js 基础学习笔记1
查看>>
如何在linux系统中设置静态ip地址
查看>>
二分查找法,折半查找原理
查看>>
DP简单问题联系--最长递增子序列+最长公共子序列等
查看>>
2017-4-18 Zabbix server的安装以及ansible批量部署zabbix agent的工作笔记
查看>>
1066. Root of AVL Tree (25)
查看>>
maven的pom.xml用<exclusion>解决版本问题
查看>>
JSP—page指令
查看>>
NOIP的基本模板合集(2)
查看>>
openscales2.2 的初始缩放等级
查看>>
hdu 4310 Hero
查看>>
mac中使用vi修改二进制文件
查看>>
css3 box-sizing属性
查看>>
copy_from_user 详解
查看>>
spring-AOP(面向切面编程)-注解方式配置
查看>>
Sping
查看>>
UI design principle android 系统根据不同屏幕密度选择不同图片
查看>>