• 疯狂Java学习笔记(019) 输入/输出:IO


    变长参数方法:

    • 方法定义时,再参数列表中出现的“类名。。。变量名”形式的参数定义,就是变长参数。
    • 修饰符 返回值类型 方法名(参数类型...变量名){ }
    • 如何传参?
    • 实际上传递的就是一个指定类型的数组
    • 方法体内就是把若干个参数组织成一个数组!
    • 注意:当变长参数和普通参数同时出现时,变长参数一定放到参数列表的最后。

    一、输入/输出:

    1.IO:File类

    • 位于java.io包下,用于表示与平台无关的文件和目录
    • File类可以用来操作文件和目录,但是不能用来访问文件的内容,是磁盘上的目录或文件的抽象表示形式,即可用来表示文件,也可以用来表示目录。

    2.构造方法

    • File(String pathName)通过将给定路径名字符串转换为抽象路径名类创建一个新File实例;
    • File(String parent,String child)根据parent路径名字符串和child路径名字符串创建一个新File实例
    • File(File parent,String child)根据parent抽象路径名和child路径名字符串创建一个新File实例
    • 例如:(右斜杠\也称反斜杠 ,在路径中“/”等于“\ ”)
    • File f1 = new File("c:/code14")
    • File f2 = new File("c:/","code14")
    • File f3 = new File(f1,"day10")

    3.File类

    构造对象时的注意事项:

      对象的上层路径如果不存在的化,在创建对象时会报错:

      对象要想创建成功,其父File对象(肯定时一个目录)必须存在

    • 例子:File f = new File("z:\a.txt");  //如果z盘不存在的话,在使用f创建文件的时候将报错
    •    boolean res = f. createNewFile( );
    •    File f = new File("a.txt");//如果不指定盘符的话,将默认指定项目路径创建

    4.File类

    创建功能:

    • boolean createNewFile( ),创建此抽象路径名指定的文件,返回值是否成功。首先z盘情况,已经有了a.txt。
    • boolean mkdir ( ),创建此抽象路径名指定的目录,只创建最后一级目录
    • boolean mkdirs( ),创建此抽象路径名指定的目录,包含必须的父File对象若不存在也一并创建
    •   注意事项:.txt结尾的不一定是文件,也可能是文件夹,在于是用那个方法创建的。

    删除功能:

    • boolean delete()删除此抽象路径名表是的文件或目录
    •   注意事项:1.java中删除内容不会进入回收站,直接删除
    •        2.删除的文件夹中不能包含内容

    重命名:

    • boolean renameTo(File dest)  重新命名到此抽象路径名表示的文件
    •   注意事项:想要改成的目标文件如果不在同一个目录的话,重命名就是剪切功能

    判断功能:

    • boolean exits( )
    • boolean isDirectory( )
    • boolean isFile( )
    • boolean isHidden( )
    • boolean canRead( )
    • boolean canWrite( )  

    获取功能:

    • String getAbsolutePath( )  //返回此抽象路径名的绝对路径名字符串
    • String getName( )  //返回由此抽象路径名表示的文件或目录的名称
    • String getPath( )  //将此抽象路径名转换为一个路径名字符串
    • String getParent( )  //返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null;即创建当前File对象时,指定的父路径!
    • long length( )  //返回由此抽象路径名表示的文件的长度:字节数
    • long lastModified( )  //返回此抽象路径名表示的文件最后一次被修改的时间

     高级获取功能:

    • String[ ] list( )  // 返回一个字符串数组,这些字符串指定由此抽象路径名表示的目录中的文件和目录名
    • File[ ] listFiles( ) //返回一个抽象路径名数组,这些路径名表示此抽象路径名表示
    •   第二种方法是File对象,而对象有很多方法可供使用,因此更加灵活

    练习:获取某个盘符下的指定类型的文件信息(只看单层目录)

      例:获取C盘下的所有jpg图片信息:大小,文件名

      思路:1,封装文件对象;2,获得它所有子File对象数组;3,遍历这个数组并判断

      补充第二种思路:

      在获得数组之前,就进行判断,这样得到的数组就都是满足条件的了,涉及到的接口:FilenameFilter

    5.File类

    批量更改某个文件夹下的文件名

    •   去掉某些标志
    •   添加某些标志

    思路:

    封装目录成File对象 

    得到此对象下的所有File对象数组

    遍历数组,并改名

    6.递归,recursive

      递归:方法内部调用方法本身的格式

      特点:1.要有出口 2.次数不能太多 3.构造方法不能递归

      递归解决问题的思想:分解→汇总

    样例:

    1.递归求5的阶乘

    2.不死神兔问题,斐波那契数列

    3.递归查找某个目录下所有的txt文件

    4.递归删除带内容的文件夹

    7.IO(Input Output)流的概念

    • Java中将不同设备之间的数据传输抽象为“流”:Stream;
    • 设备指的是:磁盘上的文件,网络连接,另一个主机等等。
    • 源----------输入流----------Java程序-------输出流-------目标

    8.IO流的分类

    按流向分:输入流,输出流

    1,都是针对内存来说的

    2,输入流,只能从其中读取数据

    3,输出流,只能把数据放入其中

    9.按每次处理的数据单位分:字节流,字符流

      字节流:每次处理一个字节

      字符流:每次处理一个字符

    10.IO流抽象基类

    通常流的分类,如果么有特定指出,都是按操作数据单位来说的

    字节流:两个方向

    • InputStream:
    • OutputStream

    字符流:两个方向

    • Reader: 输入字符流
    • Writer:输出字符流

    11.IO流分类 图示

     12.字节流的继承图

    13.字节流 

      字节输出流抽象基类:OutputStream

      字节输出流操作步骤:

      • 创建输出流对象
      • 利用流写出数据
      • 关闭资源

     14.FileOutputStream实现类

    构造方法:

    • FileOutputStream(File file):通过一个File对象创建一个文件输出流对象,默认时覆盖模式
    • FileOutputStream(String name):通过一个字符串构建一个文件输出流对象
    • FileOutputStream(File file,boolean append):通过文件对象创建文件输出流对象,并指定是否追加
    • FileOutputStream(String name,boolean append):通过一个字符串构建一个文件输出流对象,并指定是否追加

     15.FileOutputStream类的方法

    写出数据到流对象:

    void write (byte[ ] bytes)一次写一个字节数组的数据

    void write(int b) 一次写一个字节

    void write(byte[ ] bytes ,int off,int len)一次写一个字节数组的一部分

    关闭流对象:

    void close( )

      关闭此文件输出流并释放与此有关的所有系统资源

    关闭流的两个作用:

    1.让流不能再继续使用  2.释放和此流相关的系统资源

     FileOutputStream练习

    1.如何实现写出数据的换行

    2.如何实现写出数据的追加

    16.InputStream的实现子类

    常用实现子类:

    FileInputStream

    构造方法:

    FileInputStream(File file) 通过File对象创建一个文件输入流对象

    FileInputStream(String name) 通过一个字符串创建一个文件输入流对象

     方法:

    一次读一个字节

    int read( ):返回值就是本次读到的字节值!

    一次读一个字节数组

    int read(byte[ ] buf ):返回值表示本次读取到的有效字节数!!

    一旦读到文件末尾,返回值是-1

    关闭:

    void close

    17.字节输入流操作步骤:

    • 创建输入流对象
    • 利用流读入数据
    • 关闭资源
  • 相关阅读:
    python 文件操作
    高级函数
    运行cadence dpi例子出现的问题
    我对验证的一些理解【zz】
    archlinux 下挂载ntfs分区,显示"permission denied"
    vs2012安装SharePoint 2013的项目模版
    Iptables工具的使用
    webmin简介
    cassandra简介
    linux中端口扫描
  • 原文地址:https://www.cnblogs.com/akinodoo/p/9948719.html
Copyright © 2020-2023  润新知