关于文件及流的总结

                          关于文件及流的总结

一:文件********************************************

1:作用:File可以对文件进行查、找、删、建。

2File的重要构造器:

   FileString pathname):创建一个pathnameFile对象,该patnname最好是绝对路径;

3File的重要方法:(程序截取示例)

   public int printDir(String dirName){

   int fileCount=0;

   //1:根据所给路径创建File:File 对象名=new File(路径名)

        File dirFile=new File(dirName);

   //2:调用File的静态方法 listFiles(),获得该目录的下级目录及所有的真是文件

       File[] subFile=dirFile.listFiles();

       if(null==subFile||subFile.length==0){

       return 0;

  }

      for(int i=0;i<subFile.length;i++){

  //3:判断File是否是目录,返回true则是,否则不是

       if(subFile[i].isDirectory()){

String subDir=subFile[i].getAbsolutePath();

//4:递归方法的使用:即调用自身的方法

fileCount+=printDir(subDir);

System.out.println("目录是:"+subDir);

}

//5:判断File是否是文件,返回true则是文件,否则不是

if(subFile[i].isFile()){

fileCount++;

//6:获得路径名:类名.getAbsolutePath()

             String fileName=subFile[i].getAbsolutePath();

System.out.println("文件是:"+fileName);

}

}

return fileCount;

}

二:异常处理**********************************

1:主要的异常类型

 **java.lang.ArrayIndexOutOfBoundException类型

   当数组下标越界将会产生这类异常 ,例如:int a[]=new a[10]; a[10]=0;

    

**java.lang.ClassCastException类型

  对象转换异常    例如: Object obj=new Object (); int a[]=(int[])(obj);

**java.lang.NullPointerException类型

  引入空对象的实例变量或方法时会产生这类异常 例如: int a[]=null;

  System.out.print(a.length);

2:java提供的异常捕捉和处理语句有 trycatchfinallythrow throws

三:流***************************      

1:类型:原始流:InputStream类和OutPutStream 类是抽象类,不能创建对象。

        节点流:FileInputStreamInputStream的子类,FileOutPutStream是        

         OutPutStream 的子类

            缓冲流:BufferedInputStream , BufferedInputStream 

    

2:方法:程序截取示例1  

   public String  readFile2String(String fileName)throws   

       java.io.IOException{

   File stcFile=new File(fileName);

  //创建流对象:方法1File file=new File(String pathname);  

        java.io.InputStream ins=new java.io.InputStream(file);

                方法2:如以下程序所示

       java.io.InputStream ins=new java.io.FileInputStream(srcFile);

      //方法1:强制读取文件,并返回文件总字节数:流对象.available()

         byte[] contentByte=new byte[ins.available()];

  

      //方法2:读取文件并存入数组:流对象.read(byte[] b);读取文件的另一种:

                 流对象.read()

        ins.read(contentByte);

      String s=new String (contentByte);

       return s;

}

 程序截取示例2

    public boolean bufferedcopyFile(String srcFile,String     

      bakFile)throws IOException{

       //构造输入流的方法

       InputStream ins=new FileInputStream(srcFile);

BufferedInputStream bis=new BufferedInputStream(ins);

//构造输出流的方法

        OutputStream out=new FileOutputStream(bakFile);

BufferedOutputStream bos=new BufferedOutputStream(out);

int i=0;

while((i=bis.read())!=-1){

//方法3:向流中写入一个byte值的方法

        bos.write(i);

}

//方法4:关闭流的方法

         bis.close();

//方法5:将数据强制输出到目标文件

        bos.flush();

bos.close();

return true;

}                                                                                       

<!--EndFragment-->

猜你喜欢

转载自shl779189276-163-com.iteye.com/blog/1133600