zoukankan      html  css  js  c++  java
  • 疯狂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.字节输入流操作步骤:

    • 创建输入流对象
    • 利用流读入数据
    • 关闭资源
  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/akinodoo/p/9948719.html
Copyright © 2011-2022 走看看