IO流学习总结4

来源:互联网 发布:大数据精准营销公司 编辑:程序博客网 时间:2024/06/14 15:58

File类:
用来将文件或者文件夹封装成对象
方便对文件与文件夹的属性信息进行操作。
File对象可以作为参数传递给流的构造函数
了解File类中的常用方法
与流不同的是,流只能操作数据,却无法操作文件本身,例如阅览权限等。
File f4 = new File("c:"+File.separator+"aa\\zzz\\a.txt");//File.separator是\\的同义表达方式,但是\\在linux并不兼容,所以separator更能做好跨平台性


File类常见方法:
1,创建:boolean createNewFile(): 在制定位置创建文件,如果该文件已经存在,则不创建。与输出流不相同,输出流对象创建文件如果存在则覆盖。
 boolean mkdir();创建文件夹
 boolean mkdirs();创建多级文件夹。

2,删除:boolean delete():删除失败时返回false;(如果不存在则无法删除)
         void deleteOnExit();在程序退出时删除指定文件。
3,判断
boolean exists();文件是否存在
isFile();是否是文件
isDirectory();目录是否存在
isHidden();是否是隐藏文件
isAbsolute();是否是绝对路径(此方法即使没有文件存在也可以判断为真);
4,获取信息
getAbsolutePath(); 不管file对象的路径设置为何都将取出绝对路径
getPath();获得file 声明时路径。
getParent();获得的是绝对路径的父目录,如果是相对路径的话则返回null.
renameTo(File) 重名名到一另一个文件身上并且覆盖。


File下的list方法返回的是个字符串数组,然而却只有name 属性
用法:
File f = new (""c:\\);
String[] names = f.list();
for(String name:names)
{
System.out.println(name);//返回了所有C盘下的文件和文件夹名字
}

listRoots是返回所有当前可执行的有效盘符数组。
listFiles能够获取当前文件夹下的所有文件和文件夹。返回是文件的对象数组
files[i].isDirectory() 是判断该数组中是否是文件夹


递归:
在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用函数这种表现形式或者编程手法称为递归。
递归注意:
1,限定条件。
2,要注意递归的次数,尽量避免内存溢出。因为每次递归本方法没有结束又创建了一次方法,只有创建的方法执行完了才可以执行之前的方法。


Properties是hashtable的子类。
也就是说它具备map集合的特点,而且它里面存储的键值都是 字符串。
该对象的特点:可以用于键值对形式的配置文件。
那么在加载数据时,需要数据固有格式:键=值


打印流:
该流提供了打印方法,可以将各种数据类型的数据都原样打印。

字节打印流:
PrintStream
构造函数可以接收参数类型:
1,file对象 File
2,字符串路径 String
3,字节输出流 OutputStream

字符打印流:
PrintWriter
构造函数可以接收参数类型:
1,file对象 File
2,字符串路径 String
3,字节输出流 OutputStream
4,字符输出流  Writer

 

SequenceInputStream 流:
操作多个流存储到一个文本上
实现:
Vector<FileInputStream> v = new Vector<FileInputStream>();
   //向所要操作的流添加到Vector中
   v.add(new FileInputStream("d://abc.txt"));
   v.add(new FileInputStream("d://cde.txt"));
   Enumeration<FileInputStream> en = v.elements();
   SequenceInputStream ss = new SequenceInputStream(en);
   FileOutputStream fos = new FileOutputStream("d://result.txt");
   int len = 0;
   byte[] buf= new byte[1024];
   while((len = ss.read(buf))!=-1)
   {
    
    fos.write(buf,0,len);
   }
   fos.close();
   ss.close();

原创粉丝点击