IO流

Java IO-1流学习

1.Java IO概述

IO概述

Java IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络等等),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻克这些难题,这些类就位于java.io包中。

在JDK1.4之后,为了提高Java IO的效率,Java又提供了一套新的IO,Java New IO简称Java NIO。它在标准java代码中提供了高速的面向块的IO操作。

根据针对数据类型的处理,分为字节流和字符流:

1.字节流中包含输入流【InputStream】和输出流【outputStream】两种情况

在Java中,InputStream和outputStream是Java.io包中所有字符流API类的基类。

2.字符流包含输入流【Reader】和输出流【Writer】两种情况

在Java中,Reader和Writer是java.io包中所有字符流API的基类。

 

API规则

由这四个抽象类派生出来的子类的名称是以其抽象父类名称为后缀,以功能为前缀。所以判定某一个具体的流的父类,就找出它的结尾的类名是什么,它的抽象父类就是什么。

e.g. 一个类的名字叫FileInputStream,它是以InputStream为结尾的,所以这个FileInputStream的抽象父类就是InputStream类。这个类的功能从前缀进行判断。由于前缀是File,所以这个类的功能是用用于处理文件的字节输入流。

 

2.File类

    File(String pathname)

        根据一个路径得到File对象

    File(String parent, String child)

        根据一个目录和一个子文件/目录得到File对象

    File(File parent, String child)

        根据一个父File对象和一个子文件/目录得到File对象

代码示例:

需求:创建一个File类型对象,路径分为相对路径和绝对路径,判断该对象对应的文件/路径在电脑中是否存在

exists()用于判断File对象是否存在

                            File f1 = new File(相对路径/绝对路径);

                            System.out.println(f1.exists());

                            File f2 = new File(父路径,子路径/文件名);

                            System.out.println(f2.exists());

                             File f3 = new File(File类型对象,子路径/文件名);

                             System.out.println(f3.exists());

1)File类的创建功能

        boolean mkdir()

                   创建文件夹,如果存在这样的文件夹,就不创建了,路径不存在返回flase

        boolean mkdirs()

                    创建文件夹,如果父文件夹不存在,会帮你创建出来

        boolean createNewFile()

                    创建文件,路径不存在抛出异常,如果存在这样的文件,就不创建了

注意事项:若创建文件或者文件夹忘了写盘符路径,那么默认在项目路径下

需求:指定路径的File对象,mkdir创建文件夹,路径存在和路径不存在

需求:指定路径的File对象,mkdirs创建文件夹,路径存在和路径不存在

需求:指定路径的File对象,createNewFile创建文件,路径存在和路径不存在

2)File类的获取功能

            String getAbsolutePath()

                    获取文件的绝对路径

            File getAbsoluteFile()

                    获取文件的绝对路径

            String getPath()

                    获取文件的相对路径

            String getName()

                    获取名称

            String[] list()

                    获取指定目录下的所有文件或者文件夹的名称数组

            File[] listFiles()

                    获取指定目录下的所有文件或者文件夹的File数组

            File[] listRoots()

                    获取电脑中的盘符

            String[] list (FilenameFilter  filter)

                    获取指定目录下被FilenameFilter筛选后的文件,返回String类型数组

注意:FilenameFilter实现类中的accept(File  file,String  name)中两个参数,第一个参数为File对象可以表示为一个路径,第二个参数为该路径下的文件名

    File[] list (FilenameFilter  filter)

            获取指定目录下被FilenameFilter筛选后的文件,返回String类型数组

    File[] listFiles (FileFilter  filter)

            获取指定目录下被FileFilter筛选后的文件,返回File类型数组

注意:FileFilter实现类中的accept(File  file)只有一个参数,该参数指代的是一个文件的路径,和FilenameFilter中的区别在于,FilenameFilter中两个参数合在一起才能指定一个文件,而FileFilter则没有将路径和文件名分开,通过观察两个接口的名称也能看出二者的区别

3)File类的判断功能

            boolean  exists()

                    判断路径表示的文件或者文件夹是否存在

            boolean  isDirectory()

                    判断当是否是一个文件夹

            boolean  isFile()

                    判断当前是否是一个文件

4)File类的删除功能

         boolean delete()

                    若是文件就直接删除,若是文件夹则必须是空文件夹

代码示例:

File f1 = new File("D:\\work\\STS\\JavaSE-Day23-IO\\2.txt\\aaa\\bb");

    System.out.println(f1.delete());

//删除文件

File f2 = new File(f1,"cc");

    System.out.println(f2.delete());

File f3 = new File(f1,"dd.txt");

    System.out.println(f3.delete());

 

 

 

 

 

转载于:https://my.oschina.net/u/4083647/blog/3029968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值