java第十三次课后笔记

1.列出指定路径下的文件数。

importjava.io.File;

import java.io.FilenameFilter;

importjava.io.IOException;

importjava.util.Date;

public class Test {

   staticint count=0;  //文件数

   staticint count1=0;  //文件夹数

   staticint null_count=0;  //空文件数

   staticint size=0;  //文件大小

   static long maxSize=0;

static String maxFilePath="";  //找出最大的文件

publicstatic void getFile(File f)throws Exception{

     if(f.isFile()==true){

  //判断是否是文件,是的话进入if,统计个数,否的话进入循环,如果下一次还是文件夹的话则再次调用getFile(Filef)

         count++;

          size+=f.length();

          if(maxSize

              maxSize=f.length();

              maxFilePath=f.getPath();

          }

     }else{

         count1++;

         File[] fs=f.listFiles();

         if(fs==null){

             null_count++;

             return;

         }

         if(fs.length==0){

             null_count++;

         }

         for(File file:fs){

             getFile(file);

         }

      }

     

  }

  public static void main(String[] args) throwsException{

     getFile(new File("c:\\"));

     System.out.println("c盘中有"+count+"个文件");

     System.out.println("c盘的大小"+size/(float)1024/1024/1024+"GB");

     System.out.println("c盘中有文件夹"+count1+"个");

     System.out.println("c盘中有空文件夹"+null_count+"个");

     System.out.println("c盘中最大的文件是"+maxFilePath);

     System.out.println("c盘中最大文件的大小是"+maxSize/(float)1024/1024/1024+"GB");

     

  }

}

2.文件过滤器

importjava.io.File;

importjava.io.FilenameFilter;

importjava.io.IOException;

public class Test1 {

public static void main(String[] args) throwsIOException {

File f = new File("c:\\");

    File[] fs = f.listFiles(new FilenameFilter() {

        publicboolean accept(File dir, Stringname) {

                return newFile(dir,name).isFile();

            }

        });

        for(File file : fs) {

            String str=file.getName();

            if(str.endsWith("java")==true){

                System.out.println(str);

            }

        }

}

}

3.IO流

Input   outout

        8位 输出  字节

1.Io

        16位 输出 字符

2.              input

   8位流  java              d:/a.txt

内存

 

                        字节    位

 

                                 磁盘

            字节   位                   

 

3.    8位流的祖先类   InputStream(抽象类)  基本的输入输出操作由本身完成,其他操作由子类完成

   子类有:(吸入吐出的都是字节)

1.FileInputStream   抽象类及子类,类文件必须要用到的类

          2.DataInputStream   具备数据类型或格式转换的功能

          3.ObjectInputStream   对象流 (产品流和处理流)

        4.BufferedInputStream  是具有缓冲功能的输入字节类

InputStream子类对象继承InputStream类的方法:

  (1)read():int 读进8位转成10位输出,所以拿到的是10位的数,读到文件末时返回-1.

  (2)read(bety[]):int 传进的是数组,返回Int  int告诉我们本次读了多少字符。若数组长度为3,文件长度为10,需读取4次,最后一次读一个字节。

  (3)read(byte[],int,int):int  第一个int表示起始位即从数组的第几位开始存放;第二个int表示要存放多长,返回-1时说明读完了。

  (4)skip(long):long  跳过字节  skip(100)则从101处开始读取 支持断点下载

  (5)close():void  关闭

4.OutputSream类

        1.FileOutStream   是用来对本地磁盘文件进行写入操作。是一个抽象类

        2.DataOutStream  具备数据类型或格式转换功能,即像流中写入数据时,可以实现对二进制字节数据的编码功能。

        3.ObjectOutputStream  产品流及处理包,就是把字节加工成想要的形式

        4.BufferedOutputStream  是具备缓冲功能的输出字节类

        5.PrintStream  提供流的格式化输出功能

注:这些流不能单独使用,因为基本的读入和读出必须依赖于FileInputStream和FileOutStream,只有一些基本的处理方法。

5.OutPutStream子类继承以下方法:

  (1)write(int):void 将参数的低位字节写入输出流

  (2)write(byte[]):void  将数组中的全部字节顺序写入到输出流

  (3)write(byte[],int,int):void

  (4)plush():void  清空缓存

  (5)close():void

你可能感兴趣的:(java第十三次课后笔记)