---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
四、File概述
1、创建File对象
例如: File f1=new File("a.txt");将a.txt封装成对象,可以将已有的和未出现的文件或者文件夹封装成对象。
2、File类常见方法
(1)创建。
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。
boolean mkdir():创建文件夹。
boolean mkdirs():创建多级文件夹。
(2)删除。
boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。
void deleteOnExit();在程序退出时删除指定文件。
(3)判断。
boolean canExecute(); //是否可执行
boolean exists() :文件是否存在.
isFile(): isDirectory(); isHidden(); isAbsolute();
《注意》:在判断该对象是否是文件或目录之前,必须要先判断文件对象封装的内容是否存在,通过exists判断。
isAbsolute(); //是否是绝对路径,即使文件不存在也判断
(4)获取信息。
getName():
getPath()://获取文件相对文件目录
getParent():该方法返回的是绝对路径中的父目录,如果获取的是相对路径返回null,如果相对目录中有上一层目录,则返回该目录。
getAbsolutePath() //获取文件绝对路径
long lastModified() //最后修改时间
long length() boolean renameTo();//重命名(类似剪切的功能)
3、列出目录下所有内容—递归
(1)递归:也就是函数自身调用自身。这种表现形式,或者编程手法,称为递归。
(2)列出指定目录下文件或者文件夹,包含子目录中的内容。
也就是列出指定目录下所有内容。因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。
(3)递归需要注意:1.限定条件。 2.要注意递归的次数,避免内存溢出。
import java.io.*;
class FileDemo3
{
public static void main(String[] args)
{
File dir = new File("d:\\testdir");
//showDir(dir,0);
//toBin(6);
//int n = getSum(8000);
//System.out.println("n="+n);
System.out.println(dir.delete());
}
public static String getLevel(int level)
{
StringBuilder sb = new StringBuilder();
sb.append("|--");
for(int x=0; xpublic static int getSum(int n) {
if(n==1) return 1;
return n+getSum(n-1);
}
public static void toBin(int num) {
if(num>0) {
toBin(num/2);
System.out.println(num%2);
}
}
public static void method() {
method();
}
}
4、删除带内容的目录: 删除原理:
在window中,删除目录从里面往外删除的。既然是从里往外删除。就需要用到递归。
五、打印流
1、PrintWriter(字符流)
构造函数可以接收的参数类型:
(1)file对象。File; (2)字符串路径。String; (3)字节输出流。OutputStream; (4)字符输出流,Writer;
2、printStream(字节流)
构造函数可以接收的参数类型:
(1)file对象。File; (2)符串路径。String; (3)节输出流。OutputStream
3、RandomAccessFile
(1)该类不是算是IO体系中子类。而是直接继承自Object。但是它是IO包中成员。因为它具备读和写功能。内部封装了一个数组,而且通过指针对数组的元素进行操作。
(2)可以通过getFilePointer获取指针位置,同时可以通过seek改变指针的位置。其实完成读写的原理就是内部封装了字节输入流和输出流。
(3)通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式:只读r,,读写rw等。如果模式为只读 r,不会创建文件。会去读取一个已存在文件,如果该文件不存在,则会出现异常。如果模式rw,操作的文件不存在,会自动创建。如果存则不会覆盖。
4、DataInputStream和DataOutputStream(操作基本数据类型)
(1)可以用于操作基本数据类型的数据的流对象。
(2)用于操作字节数组的流对象。
ByteArrayInputStream:在构造的时候需要接受数据源,而且数据源是一个字节数组。
ByteArrayOutputStream:在构造的时候不用定义数据目的,因为该对象中已经封装了可变长度的字节数组,这就是数据目的地。因为这两个流对象操作的是数组,并没有使用系统资源,所以不需要close关闭。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net