------- android培训、java培训、期待与您交流! ----------
一.File概述
File也是一个类,可以被封装
File被封装成对象后可以有许多的属性
1.File.separator与系统有关的目录分隔符
二.File类的常见方法
1.创建
boolean creatNewFile():在指定的位置创建文件,如果文件存在则返回false,和输出流不一样,输出流如果文件存在,也会覆盖它
boolean mkdir():创建一级文件夹
boolean mkdirs():
创建多级文件夹
2.删除
boolean delete():删除失败返回false()
boolean deleteOnExit():在程序退出时删除指定文件
3.判断
boolean canExecute():测试应用程序是否可以执行此抽象路径名称的文件
boolean exist():文件是否存在
boolean isFIle():抽象路径名文件是否是一个标注文件
boolean isDirectory()是否是一个目录
4.获取信息
String getName():返回此路径名下的文件或目录的名称
String getpath():将此抽象路径名转换为一个路径名字符串
使用步骤:1.先创建File的实例对象
2.第二步用对象进行创建文件或者文件等操作
三.IO列表
1.取出系统盘符
File[] f=File.listRoots()
2.取出C盘下的目录和文件名
File f=new File("c:\\)
String[] names=f.list();
3.过滤器
dir.list(new FilenameFilter(){
public boolean accept(File dir,String name)
{
return name.endWith(".doc");
}
其实可以获得一个实例,调用accept()方法
说白了list里面就是传一个实例进去,然后list内部调用这个实力的方法,进行内部构造。
}
四.递归
说白了就是方法里面调用方法
递归
class FileDemo3
{
public satic void main(String[] args)
{
File dir=new File("");
showDir(dir);
}
public static void showDir(File dir)
{
System.out.prntln(dir);
File[] files=dir.listFiles();
for(int x=0;x<files.length;x++)
{
if(files[x].isDirectory())
showDir(file[x]);
else
sop(files[x]);
}
}
}
五.properties读取配置文件
properties是Hashtable的子类具有map集合的特点
用它读取配置文件
class PropertiesDemo
{
public satic void method_1() throws IOException
{
BufferedReader bufr=new BufferedRead(new FileReader("info.txt"));
String line=null;
Properties prop = new Properties;
while((line=bufr.read())!=null)
{
String[] arr=line.split("=");
sop(line);
prop.setProperty(arr[0],arr[1]);//设置键值对
}
bufr.close();
}
public static void loadDemo()throws IOException
{
Properties prop=new Properties();
FileInputStream fis =new FileInputStream();
prop.load(fis);
prop.setProperty("wangwu","39");
FileOutputStream fos =new FileOutPutStream("info.txt");
prop.store(fos,"haha");
prop.list(System.out);
Sop(prop);
fos.close();
fis.close();
}
public static void main(String[] args)
{
setAndGet();
}
public static void setAndGet()
{
Properties prop=new Properties();
prop.setProperty("zhangsan","30");
prop.setProperty("zhanwn","31")
sop(prop);
Set<String names=prop.stringPropertyName();
for(Sring s:names)
{
sop(s+prop.getProperty(s));
}
}
}
六.IO流(PrintWriter)
随便找地方都能打
PrintWriter out=new PrintWriter(new FileWriter("1.txt"),true);刷新缓冲区,把一个文件封装到流里面了
七.合并流
Vector<FileInputStream> v=new Vector<FileInputStream>
v.add(new FileInoutStream("e:\\1.txt");
v.add(new FileInoutStream("e:\\2.txt");
先枚举也就是迭代器
Enumeration<FileInputStream> en=v.elements();
合并流
SequenceInputStream sis=new SequenceInputStream(en);把迭代器传入
八拆文件
就是把一个文件读了一步存入一个文件中,然后关闭流,接着开下一个流
fos=new FileOutputStream(''c:\\"+count++".part");