关于文件及流的总结
一:文件********************************************
1:作用:File可以对文件进行查、找、删、建。
2:File的重要构造器:
File(String pathname):创建一个pathname的File对象,该patnname最好是绝对路径;
3:File的重要方法:(程序截取示例)
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提供的异常捕捉和处理语句有 try、catch、finally、throw 、throws
三:流***************************
1:类型:原始流:InputStream类和OutPutStream 类是抽象类,不能创建对象。
节点流:FileInputStream为InputStream的子类,FileOutPutStream是
OutPutStream 的子类
缓冲流:BufferedInputStream , BufferedInputStream
2:方法:程序截取示例1
public String readFile2String(String fileName)throws
java.io.IOException{
File stcFile=new File(fileName);
//创建流对象:方法1:File 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;
}